IMAPサーバで扱うメールデータ数や同時接続数、運用パフォーマンスとの関係について

IMAPサーバで扱うメールデータ数や同時接続数、運用パフォーマンスとの関係について、弊社試験環境で検証試験を重ねたところ、おおむね次のような傾向が明らかになっています。IMAPサーバを利用する際は、こうした傾向に注意を払い、メールボックスの保管メールデータ数が膨大になってきたときは、できるだけフォルダに分けてメールを分類・整理する運用方法を強く推奨いたします。
なお、この検証試験結果の元になったデータとグラフは次の通りです。

  IMAP4負荷試験接続1回当たり処理時間(各100回連続実行の平均)
  1回当たり処理時間(単位:秒)               1メール=約1.5KB
同時接続数
メールボックス
メール数=0
メールボックス
メール数=100
[既0/未100]
メールボックス
メール数=500
[既0/未500]
メールボックス
メール数=1000
[既500/未500]
メールボックス
メール数=1000
[既0/未1000]
同時接続数=5 0.042 0.054 0.064 0.070 0.084
同時接続数=10 0.043 0.053 0.069 0.078 0.089
同時接続数=25 0.044 0.055 0.077 0.084 0.099
同時接続数=50 0.047 0.057 0.077 0.093 0.110
同時接続数=100 0.053 0.069 0.087 0.104 0.124
同時接続数=150 0.055 0.068 0.097 0.111 0.138
同時接続数=200 0.062 0.073 0.106 0.173 0.190



接続1回あたりの処理時間のグラフから読みとれること
1.500メール数程度なら同時接続数が150、200と増えても、1回あたりの処理時間は、0.1秒前後ときわめて良好なパフォーマンスを示している。同時接続数の増加はさほど問題にならない。
2.同時接続数が150、200と増え、さらに1000メール数のメールを初めてIMAP受信するときに(既0/未1000のケース)、負荷が かかっていることが読みとれる。このとき1回あたりの処理時間は、0.2秒近くまでになり、100回連続実行した全体の処理時間で1時間以上かかっている。このようにメール数が1000個以上になると、パフォーマンスがやや下がる傾向がある。
3.1000メール数でも半分の500メールを一度IMAP受信したことがあるときには、初めてIMAP受信する場合よりも、少しパフォーマンスが上がっている。(既500/未500のケース)

※ここでの「既読0/未読1000」とは、POP3メールボックスにメールデータが格納されているがIMAP4でまだ接続していないため、IMAP4用のメールボックスにはメールデータ0個であることを表わす。IMAP4で接続されたタイミングで、POP3用メールボックスから、IMAP4用のールボックスに向けて、メールデータ1000個がコピーされ、IMAP受信される動きとなる。

実 行 環 境 E-Post Mail Server Standard 
(AD連携+E-Postクラスタ構成 [正系側で検証])
メール作業フォルダ:ネットワーク共有ドライブを使用
O   S Windows Server 2008 R2 (base on Hyper-V)
ドメインコントローラ Windows Server 2008 R2 (base on Hyper-V)
ホストマシン CPU:XeonクアッドコアX3323 2.5GHz 
MEM:16GB (仮想マシン割り当ては各1GB)
IMAP4クライアント 弊社製IMAP4 DOS版クライアントツール
"imap4ClientDos.exe"を任意回数分呼び出すバッチファイルを
同時接続分だけ複数作成し、同一マシンから一気に実行した