バッチジョブとしてsendmailリレーサーバーに電子メールを送信するWebサーバーがあります。電子メールは、リレーsendmailサーバーによってできるだけ早く受け入れられる必要がありますが、すぐに送信(中継)される必要はありません。
Webサーバーがリレーサーバーに接続しようとすると、タイムアウトが2回発生することがあります。現在の負荷は、数分間で1秒間に約30通のメールです。
sendmailチューニングガイド には、sendmailのチューニングオプションがかなりあります。
私が今焦点を当てているのは、配信モードです。
配信モード
DeliveryMode(d)構成オプションで設定された、sendmailが動作できる配信モードがいくつかあります。これらのモードは、メールが配信される速度を指定します。法的モードは次のとおりです。
iインタラクティブに(同期的に)配信しますbバックグラウンドで(非同期的に)配信しますqキューのみ(配信しない)d配信の試行を延期します(配信しない)トレードオフがあります。モードiは、送信者に最速のフィードバックを提供しますが、一部のメーラーの速度が低下する可能性があり、ほとんど必要ありません。モードbは迅速に配信されますが、メッセージの配信に時間がかかるメーラーがある場合、多数のプロセスが発生する可能性があります。モードqは、マシンの負荷を最小限に抑えますが、配信がキュー間隔まで遅延する可能性があることを意味します。モードdはモードqと同じですが、-Dフラグを含むマップでのルックアップが初期キューフェーズで機能しないことも異なります。これは、DNSルックアップに実際の費用がかかる可能性がある「ダイヤルオンデマンド」サイトを対象としています。一部の単純なエラーメッセージ(SMTPプロトコル中にホストが不明など)は、このモードを使用すると遅延します。モードbが通常のデフォルトです。モードq(キューのみ)、d(延期)、またはb(バックグラウンドで配信)で実行する場合、sendmailはエイリアスを展開せず、メールの最初の受信時に.forwardファイルに従います。これにより、RCPTコマンドへの応答が高速化されます。モードiはSMTPサーバーで使用しないでください。
私は現在CentOSのデフォルトモードを持っています:
Sendmail.cf:
DeliveryMode=background
Submit.cf:
DeliveryMode=i
sendmail.cf/mc
リレーから(インターチューブへの)送信メール用およびsumbit.cf/mc
(私のウェブサーバーからの)着信eamil用。カイル、
**私は決してsendmailの専門家ではありません**
あなたのユースケースでは、sendmailがメッセージをできるだけ早く受け入れ/キューに入れる必要性が重要です(バッチ処理?)。まだの場合は、sendmailオプションを確認してください:QueueLAおよびRefuseLA-キュー負荷平均および拒否負荷平均。あなたが本当にsendmailを攻撃しているなら、あなたの負荷平均はすぐに屋根を通り抜けて、あなたはあなたのタイムアウト問題の一部であるかもしれないRefuseLAにぶつかるでしょう。 RefuseLAを増やすことをお勧めします(まだ増やしていない場合)。
Sendmailが一度に多くのこと(受信と送信)を行わないようにするには、QueueLAを下げます。 QueueLAの値を低くすると、sendmailがキュー専用モードになるため、sendmailはキューイング作業に集中し、送信/送信作業を後で使用できるように保存します。 QueueLAが低くRefuseLAが高いと、システムは大量のメール(ディスク領域)をキューに入れ、負荷がQueueLAを下回った後に送信を開始します。
通常のsendmail構成の場合、QueueLAはRefuseLAよりも大幅に低くするべきではなく、おそらく非常にわずかに高くする必要があることに注意してください。
配信モード「q」は、低QueueLA設定の極端なバージョンであり、アウトバウンドメッセージ転送を開始するために何らかの方法で配信コマンドを開始する必要があります。
リソース: http://www.brandonhutchinson.com/QueueLA_and_RefuseLA.html