メールサーバが配送遅延

2008-05-20 23:45:25 | | このエントリーを含むはてなブックマーク | Tag: postfix サーバ管理 研究室

研究室のメールサーバが spam を喰らったようで、キューがいっぱいになっていました。

とりあえず環境は次の通り。

  • Debian etch
  • Postfix
  • amavisd-new
  • SpamAssassin
  • ClamAV

Postfix からは content_filter で amavisd を呼び出し、スパムチェックとウィルスチェックを経て、再び Postfix へ戻す処理をしています。

Postfix でフィルタ処理をするときは、大きく分けて次の 2 方法があります。

  • smtpd_proxy_filter
  • content_filter

前者は外部 MTA から受け取った smtpd が SMTP を話すフィルタプログラムへ直接渡します。そのためフィルタプログラムでエラーが生じた場合、メールを受け取り損ねる場合があります。

一方の後者は、一度 smtpd で受け取りキュー処理をした後にフィルタプログラムへ渡すので、外部 MTA から受け取り損ねることはありません。しかし、フィルタプログラムを経たメールは再び smtpd へ渡されキュー処理されるので、Postfix のキューを 2 回通ることになり、場合によってはキューが溢れることがあります。

それぞれ一長一短なので、利用環境に応じて設定すると良いかも知れません。

さて Postfix のキューですが、次の 6 つがあります。

  • maildrop: ローカルの sendmail コマンドから送信されたメールのキュー
  • incoming: cleanup デーモンにより、最初に入るキュー
  • active: 配送処理中のキュー
  • deferred: active キューの後、送信ミスなどにより再送するメールが戻されるキュー
  • corrupt: 何らかの原因で壊れているメールのキュー
  • hold: 管理者が任意に使えるキュー

これらのキューに入っているメールの一覧は、qshape コマンドを用いることで確認できます。引数にキューを指定でき、省略時は“incoming active”です。

qshape コマンド

# qshape
                             T  5 10 20 40  80 160 320 640 1280 1280+
                    TOTAL 1346 16 30 45 92 134 249 780   0    0     0
       tom.sfc.keio.ac.jp 1324 15 29 44 91 132 242 771   0    0     0
           sfc.keio.ac.jp    7  0  1  0  0   0   1   5   0    0     0
kencho.tom.sfc.keio.ac.jp    7  0  0  0  1   1   5   0   0    0     0
                *****.com    5  1  0  1  0   1   0   2   0    0     0
                  ***.org    2  0  0  0  0   0   0   2   0    0     0
           ********.co.jp    1  0  0  0  0   0   1   0   0    0     0

横軸は時間 (単位: 分)、縦軸は宛先ドメインです。この時点でキューには 1346 通溜まっています。溜まりすぎですね……。

続いて、どの処理で遅延しているかを調べました。単純に調べる方法として、Postfix が処理中のものはファイルロックされるだろうと推定し、ps コマンドで見てみました。具体的には ps -lU postfix を watch コマンドで監視してました。その結果、Postfix にはボトルネックとなるような部分がありませんでした。

「じゃーどこだろう」と考えると、「フィルタリングで順番待ちをして居るんじゃないか」というところです。デフォルトで amavis は 2 プロセスしか立ち上がらないので、/etc/amavis/conf.d/50-user$max_servers = 5; を書き加え、サービスをリスタートさせました。

そしたら快適に動くようになりました。終盤は端折りすぎましたが、そんな感じでした。

Related Entries

There is not related articles.

Trackbacks

Trackback URI: http://blog.c--v.net/trackback/2008/05/20/1

There is no trackback.

Comments

There is no comment.

Name
URI (Homepage or Email)
Body