Mozilla Thunderbirdを使うとIMAPサーバ暴走

IMAPサーバを動かしているサーバのロードアベレージが70ぐらいになって、大変なことになっていた。
・IMAPサーバ:dovecot-0.99.11-9.EL4 (ファイルシステムext3)
・IMAPクライアント:2.0.0.17
状況は、ps axuするとIO待ちのimapプロセスが大量に存在する。

原因がわかったので、書いておく。
今回の場合、Trashフォルダに数万件のメールがあり、何かのメールを削除するとThunderbirdがTrashフォルダに
新規スレッドでアクセスする。
ファイルが大量にあるMaildirを見ると以下のように、ディレクトリ自体の容量が大きい。

% ls -al
drwx------   2 matsu matsu  95M Sep 20 10:19 cur
drwx------   2 matsu matsu 7.9M Sep 20 10:19 new
drwx------   2 matsu matsu 9.1M Sep 24 08:00 tmp

そのスレッドの処理にimapサーバが長時間かかる。
また、メールを削除するたびにサーバ側でimapスレッドが生成されてしまう。

そのため、ファイル削除に加えて、ディレクトリの再作成をすれば回復する。

% cd ~/Maildir/Trash/
% find cur -exec rm {} \;
% rmdir cur
% mkdir cur
% chmod 700 cur

ファイルを削除するだけだと、だめ。inodeのフラグメントがあるらしく時間がかかるからディレクトリを再作成してあげる必要がある。

もっと詳しく >>

 

リンク