大量のメールを一括送信する場合、配送キューにファイルが大量に溜まることで配送処理が悪化してしまうのを防ぐには
メール送信時には、SMTPレシーバーサービスプログラムであるepstrdから、配送キューであるincomingフォルダに、ファイルが格納されていきます。SMTP配送サービスプログラムであるepstddは、そのファイルを次々と外部へ配送したり、内部ドメインの場合はメールボックスへ格納する処理を行います。デフォルトでは、epstrdから、配送キューであるincomingフォルダにファイルが格納されるとき、その流量制限は特に設けられていません。
しかしながら、大量のメールを一括送信した場合は、epstrdサービスプログラムが受領した後、片っ端から配送キューであるincomingフォルダにファイルを格納していくため、ファイル数が膨大にふくれあがる状態になります。ファイル数が増えることで、OS側のファイル処理のパフォーマンスが極端に低下するという問題を引き起こし、ひいては配送速度が極端に低下したり、配送自体ができなくなるなどの問題が生じてしまう事態を招きかねません。
これは、ファイルシステム性能上の問題でもあり、ファイルインデックスの応答レスポンスが極端に低下してしまうものです。CPU性能やメモリ実装量などとは一切無関係です。
専用プログラムから大量のメールを送る場合は、通常はウエイトをかけながら送信をすることがノウハウのポイントとなっていることが多いようですが、E-Post Mail Server / E-Post SMTP Server側でも、上記の問題を起こさないようにする設定が必要なケースもあります。epstrdが大量の送信メールを受け付けるとき、配送キューであるincomingフォルダにファイルを移しすぎないよう、受領そのものに流量制限をかける方法です。
受領処理にウエイトをかけ、配送キューに流量制限をかけるには、次のように、設定ファイルを操作して数値10進で作成、値を設定します。
たとえば、作成した設定ファイル、SpoolFsSync.1に"1000"(10進)の数値を設定することで、1000メール分(MSGとRCPの2ファイル1組で1メール分)を超えないように流量制限の設定を行います。incomingフォルダ内には、1000メール分以下、つまりファイル数はその約2倍の2000ファイル程度以下になるまで、受領処理にウエイトがかかります。クライアントはその分だけ待たされます。
なお、この設定値を調整すれば、受領処理のウエイトを減らし、配送のパフォーマンスを調整できます。たとえば、"5000"(10進)の数値を設定することで、5000メール分、つまりファイル数はその約2倍の10,000ファイル程度以下になるまで、受領処理のウエイトがかかるのを緩和することができます。ただし、数値を上げていって"10000"(10進)以上の数値を設定することは、1フォルダあたりのファイル数を2万個まで許容することになりますので、ファイルシステムのパフォーマンス低下を防げなくなる可能性があります。十分注意して設定してください。
[E-Post Mail Server / E-Post SMTP Serverシリーズの場合]
[メール作業フォルダ] (既定値 /var/spool/epms/)
→reg
→epost
→ims
→EPST5RS
→SpoolFsSync.1 (数値)
デフォルト値 0:無制限
(incomingフォルダの走査をスキップする)
設定内容を変更した後は、設定値を反映させるため、epstrdサービスを再起動してください。