SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
てるてる動画

sendmailはload average が高いと メールを送受信しない

問題

サーバーからメールが送信できないみたいです。

/var/log/maillog を見ると、以下のようなメッセージがありました。

rejecting connections on daemon MTA: load average: 20

MTAは、CentOS6でyumで入れたsendmailです。

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

関連するメモ

コメント