IMAP4利用時にCPU高負荷状態になることを避けるオプション new!
epstimap4d v5.09以降には、IMAP4利用時にCPU高負荷状態になることを避けるオプションがあります。万が一、IMAP4サービスのCPU使用率が100%になる高負荷状態になってしまう場合は、以下の設定をお試しください。
設定1.「FETCHコマンドのタイミング調整」
FETCH命令で添付受信時にCPU負荷が上がり過ぎる場合、負荷低減用調整値が設定可能になっています。v5.09以降追加されました。regディレクトリ内の設定ファイルによりこのCPU負荷低減用調整値を設定します。例として値:50や値:100を設定します。
※ユーザーによって数十MB程の大きなメール取得がある場合、実はIMAP4サービスの負担が大きな影響を与えます。サービスが大きなメール処理だけにかかりっきりにならないようにするのがこの設定の趣旨です。
(regディレクトリ内の設定ファイル)※CPU負荷低減用調整値の設定(epstimap4d v5.09以降)
[メール作業ディレクトリ] (既定値 /var/spool/epms/)
→reg
→epost
→ims
→EPST5IMAP4S
→BodyPeekCoolTime.1 (数値 Default 0) FETCH命令で添付受信時にCPU負荷低減用調整値
デフォルト 0:調整しない 調整値 50〜65535
(調整値の目安)
50(10進)でCPU負荷は約半分程度、受信時間が3倍程度に伸びる
100(10進)でCPU負荷は約6割程度、受信時間が2倍程度に伸びる
500(10進)でCPU負荷は約8割程度、受信時間が1.2倍程度に伸びる
「FETCHコマンドのタイミング調整」BodyPeekCoolTime(v4.68 以降)は、高速化を狙って検索(SEARCH命令)や読出し(FETCH命令)をメモリ上でファイル単位に処理することをデフォルトで行うようにしています。CPU使用率高負荷の現象は、他のI/O(DISK)アクセスでの待ち時間が減ると、CPUの占有率が見た目で上昇してしまうことが起こり得るためです。
設定2.「SEARCH命令で検査対象のメールデータ読込みを1回で処理(検索機能のチューニング)」
「SEARCH命令で検査対象のメールデータ読込みを1回で処理(検索機能のチューニング)」BulkSearchです。これは対象ファイルの検索処理をメモリ読み込み後にメモリ上で行うかDISK上でファイルを読みながら行うかの選択オプションです。v5.09 以降追加されました。
先の「FETCHコマンドのタイミング調整」BodyPeekCoolTime の設定でもし改善されない場合、以下のレジストリ値 BulkSearch を'0'に設定することで、DISK上から順次ファイルのデータを読みながら検索させることになります。これにより、CPUとDISKアクセスに負荷を分散できます。
(regディレクトリ内の設定ファイル)※SEARCH命令で検査対象のメールデータ読込みを1回で処理(epstimap4d v5.09以降)
[メール作業ディレクトリ] (既定値 /var/spool/epms/)
→reg
→epost
→ims
→EPST5IMAP4S
→BulkSearch.1 (数値 Default 1) SEARCH命令で検査対象のメールデータ読込みを1回で処理
デフォルト 1:する 0:しない
これを'0'に設定するとDISK上から順次ファイルのデータを読みながら検索させる
このregディレクトリ内の設定ファイル値 BulkSearch も、DISKアクセスを主体とするか、メモリアクセスを主体にするかの選択です。そのため場合によってはCPU使用率高負荷現象の低減には効果がある可能性があります。その分、I/O(DISK)アクセスに負荷が分散され、その間CPUの占有が解放されると言う意味です。
epstimap4d v5.09以降の改修では、高速化を狙って検索(SEARCH命令)や読出し(FETCH命令)をメモリ上でファイル単位に処理することをデフォルトで行うようにしています。前述したように、CPU使用率高負荷の現象は、他のI/O(DISK)アクセスでの待ち時間が減ると、CPUの占有率が見た目に上昇することが起こり得ます。設けられたオプションを設定し、最大限に活用してください。
(関連FAQ)
●E-Post Mail Server V / E-Post SMTP Server V で使用している設定ファイル〔BSD版〕