imapdサーバーのCPU高負荷をなんとかしたい

結論から言います。
Mozilla Thunderbirdを使っている人がいたら、一度閉じて起動してください。

不気味な高負荷現象に遭遇する

サーバーのプロセス監視をしているとある日、imapdメールサーバー(Courier-IMAP)のプロセスが常にCPU使用率40%以上という現象に遭遇しました。

# ps axuwwf|grep imapd|grep -v ps|grep -v grep
popuser  22642  0.0  0.0  12892  3112 ?        S    09:20   0:14  \_ /usr/bin/imapd Maildir
popuser  25543 45.1  0.0  12832  3028 ?        S    10:23  99:16  \_ /usr/bin/imapd Maildir
popuser  31464  0.0  0.0  11624  1740 ?        S    12:19   0:01  \_ /usr/bin/imapd Maildir
popuser   2999  0.0  0.0  13748  3876 ?        S    13:36   0:00  \_ /usr/bin/imapd Maildir
popuser   5457  0.0  0.0  11072  1180 ?        S    13:58   0:00  \_ /usr/bin/imapd Maildir
root     20584  0.0  0.0   4056   620 ?        S     2016   2:25 /usr/sbin/courierlogger imapd
root     20593  0.0  0.0   4056   616 ?        S     2016   0:10 /usr/sbin/courierlogger imapd-ssl

courier-imapd の再起動を試みるが…

気味が悪いので「courier-imapd restart」で再起動すると、一旦は消えるのですが、またしばらくすると復活してきます。

さらにメールログも含めて監視しながら調べてみると、特定のメールアカウントでの受信チェック時にその高負荷プロセスが発生することが判明。

高負荷のプロセス詳細を調査

プロセスIDを元に、どのアカウントにアクセスしているのかを「proc」から調べます。

# ls -lv /proc/9481/fd
total 0
lrwx------ 1 popuser popuser 64 Jan 17 15:16 0 -> socket:[2716631526]
lrwx------ 1 popuser popuser 64 Jan 17 15:16 1 -> socket:[2716631526]
l-wx------ 1 popuser popuser 64 Jan 17 15:16 2 -> pipe:[2716629853]
lr-x------ 1 popuser popuser 64 Jan 17 15:16 3 -> /var/qmail/mailnames/example.com/info/Maildir/courierimapkeywords/:list

上のドメイン部分は仮のものですが「info@example.com」アカウントが「Maildir/courierimapkeywords/:list」にアクセスしていることで高負荷がかかっているようです。

問題の原因はThunderbirdだった

対象のメールアカウントのメンバーに電話をして確認すると、以下のバージョンで発生しているようでした。

  • Windows 10
  • Thunderbird 45.6.0

とくにいつもと変わらない使い方をしているとのことで、詳細を調べようとすると迷宮入りしそうだったので、一旦Thunderbirdを終了してもらい、再度起動してもらうと、原因の高負荷プロセスも消え、問題ない状態に戻ってくれたのでした。 終わり。

このページをシェアする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

2017-01-17