sendmailはload average が高いと メールを送受信しない
問題
サーバーからメールが送信できないみたいです。
/var/log/maillog を見ると、以下のようなメッセージがありました。
rejecting connections on daemon MTA: load average: 20
MTAは、CentOS6でyumで入れたsendmailです。
答え
負荷(ロードアベレージ)が高いと、sendmailはメールを送受信しない。
sendmail.cf に以下の設定がある。デフォルトでは、ロードアベレージが12を超えるとキューにしまい、18を超えると送受信しない。
# load average at which we just queue messages O QueueLA=12 # load average at which we refuse connections O RefuseLA=18
巨大なメールなどを処理しないためなのか、忙しいときは無理に対応しないためなのか?
設定を変えるには?
負荷が多少高くても、メールは送信して欲しいなら、設定を変える。
基本の手順は、sendmail.cf は直接編集はしないで、sendmail.mc を編集して、makeして sendmail.cf を作り直す。
1 sendmail.mc を編集する
以下の dnl でコメントアウトされている行のコメントをはずして、数値部分は希望の値に変更する。
# vi /etc/mail/sendmail.mc
dnl define(`confQUEUE_LA', `12')dnl dnl define(`confREFUSE_LA', `18')dnl
↓
define(`confQUEUE_LA', `99')dnl define(`confREFUSE_LA', `100')dnl
ほぼありえないだろうという値を入れて、いつでも送信してもらうつもりで設定。
2 makeする
# cd /etc/mail # make
(# m4 sendmail.mc > sendmail.cf だけでもいいのかもしれない。)
もし以下のようなエラーになったら、
WARNING: 'sendmail.mc' i modified. Please install package sendmail-cf to update your configuration.
sendmail-cf というパッケージをインストールして再チャレンジ。
# yum install sendmail-cf
3 sendmailを再起動
# /etc/init.d/sendmail restart
コメント