サーバーの空きメモリが少なく、気になって、メモリの使用量をプロセス毎にチェックすると・・・
mailmanが・・・
メモリ消費の原因は何か
psコマンドで、メモリの消費量をチェック!
# ps aux --sort rss xxxxxxx xxxx 0.0 1.0 xxxxxxx xxxxx ? Ssl Oct24 0:29 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid xxxxxxx xxxx 0.5 1.3 xxxxxxx xxxxx ? S 14:27 2:37 php-fpm xxxxxxx xxxx 0.4 2.0 xxxxxxx xxxxx ? S Oct29 10:43 php-fpm xxxxxxx xxxx 0.4 2.2 xxxxxxx xxxxx ? S Oct29 10:37 php-fpm xxxxxxx xxxx 0.0 2.9 xxxxxxx xxxxx ? S Oct24 0:20 rspamd: rspamd_proxy process xxxxxxx xxxx 0.0 3.5 xxxxxxx xxxxx ? S Oct24 2:04 rspamd: normal process xxxxxxx xxxx 0.0 3.6 xxxxxxx xxxxx ? S Oct24 0:05 rspamd: hs_helper process xxxxxxx xxxx 0.0 3.6 xxxxxxx xxxxx ? Ss Oct24 0:13 rspamd: main process; 0.3 msg/sec, 0.0 msg/sec spam, 0.3 msg/sec ham xxxxxxx xxxx 0.0 6.5 xxxxxxx xxxxx ? SL Oct24 6:04 rspamd: controller process xxxxxxx xxxx 0.0 1.3 xxxxxxx xxxxx ? Sl Oct24 12:12 /usr/sbin/mysqld --daemonize xxxxxxx xxxx 0.1 38.7 xxxxxxx xxxxx ? S Oct26 22:07 /usr/bin/python /home/mailman/bin/qrunner --runner=IncomingRunner:0:1 -s
一番下が、一番、メモリを消費している・・・
と、psコマンドで、見ると、「mailman」が、大量消費。
一番下が、一番メモリを消費している(結果の数字などは一部、変更しています)
●mailmanが大量にメモリを消費している
上記の「38.7」が、メモリの使用率。mailmanのプロセスが、38.7%ものメモリを消費している!
# ps aux |grep mailman xxxxxxx xxxxx 0.0 0.3 xxxxxxx xxxxx ? Ss Oct26 0:00 /usr/bin/python /home/mailman/bin/mailmanctl -s start xxxxxxx xxxxx 0.0 0.4 xxxxxxx xxxxx ? S Oct26 0:12 /usr/bin/python /home/mailman/bin/qrunner --runner=ArchRunner:0:1 -s xxxxxxx xxxxx 0.0 0.4 xxxxxxx xxxxx ? S Oct26 0:12 /usr/bin/python /home/mailman/bin/qrunner --runner=BounceRunner:0:1 -s xxxxxxx xxxxx 0.0 0.4 xxxxxxx xxxxx ? S Oct26 0:11 /usr/bin/python /home/mailman/bin/qrunner --runner=CommandRunner:0:1 -s xxxxxxx xxxxx 1.8 38.7 xxxxxxx xxxxx ? S Oct26 28:02 /usr/bin/python /home/mailman/bin/qrunner --runner=IncomingRunner:0:1 -s xxxxxxx xxxxx 0.0 0.4 xxxxxxx xxxxx ? S Oct26 0:11 /usr/bin/python /home/mailman/bin/qrunner --runner=NewsRunner:0:1 -s xxxxxxx xxxxx 0.0 0.5 xxxxxxx xxxxx ? S Oct26 0:14 /usr/bin/python /home/mailman/bin/qrunner --runner=OutgoingRunner:0:1 -s xxxxxxx xxxxx 0.0 0.5 xxxxxxx xxxxx ? S Oct26 0:12 /usr/bin/python /home/mailman/bin/qrunner --runner=VirginRunner:0:1 -s xxxxxxx xxxxx 0.0 0.4 xxxxxxx xxxxx ? S Oct26 0:00 /usr/bin/python /home/mailman/bin/qrunner --runner=RetryRunner:0:1 -s
↑やはり、mailmanのあるコマンドが、3割以上のメモリを消費している!
# systemctrl restart mailman # ps aux |grep mailman xxxxxxx xxxxx 0.0 0.3 xxxxxxx xxxxx ? Ss 20:28 0:00 /usr/bin/python /home/mailman/bin/mailmanctl -s start xxxxxxx xxxxx 0.0 0.5 xxxxxxx xxxxx ? S 20:28 0:00 /usr/bin/python /home/mailman/bin/qrunner --runner=ArchRunner:0:1 -s xxxxxxx xxxxx 0.0 0.5 xxxxxxx xxxxx ? S 20:28 0:00 /usr/bin/python /home/mailman/bin/qrunner --runner=BounceRunner:0:1 -s xxxxxxx xxxxx 0.0 0.5 xxxxxxx xxxxx ? S 20:28 0:00 /usr/bin/python /home/mailman/bin/qrunner --runner=CommandRunner:0:1 -s xxxxxxx xxxxx 0.0 0.5 xxxxxxx xxxxx ? S 20:28 0:00 /usr/bin/python /home/mailman/bin/qrunner --runner=IncomingRunner:0:1 -s xxxxxxx xxxxx 0.0 0.5 xxxxxxx xxxxx ? S 20:28 0:00 /usr/bin/python /home/mailman/bin/qrunner --runner=NewsRunner:0:1 -s xxxxxxx xxxxx 0.0 0.5 xxxxxxx xxxxx ? S 20:28 0:00 /usr/bin/python /home/mailman/bin/qrunner --runner=OutgoingRunner:0:1 -s xxxxxxx xxxxx 0.0 0.5 xxxxxxx xxxxx ? S 20:28 0:00 /usr/bin/python /home/mailman/bin/qrunner --runner=VirginRunner:0:1 -s xxxxxxx xxxxx 0.0 0.5 xxxxxxx xxxxx ? S 20:28 0:00 /usr/bin/python /home/mailman/bin/qrunner --runner=RetryRunner:0:1 -s
↑と再起動をすると、再起動直後は、メモリ消費が抑えられる
しかし、時間が経過すると、また、サーバーのメモリを圧迫し始める・・・
過去ログ(保存書庫)が、原因
さて、いろいろと調査をすると、
「過去のアーカイブデータ」が、影響しているようです・・・
メーリングリストにメールを投げる度に、過去ログ(保存書庫)を作り直している。
実際に、保存書庫があったリストにメールを送ると、メモリ使用量が増大!
そして、元に戻らない・・・(戻ってくれー・・・(汗))
すでに、「保存書庫を作成しない」としていても、過去の保存書庫があれば、「作り直し」の対象となってしまう。
まとめ読みの添付ファイルも
また、「まとめ読み」をしていると、リスト宛てに送ったメールに「添付ファイル」がある場合、
mailmanは、添付ファイルをサーバーに貯める。このサーバー上にある添付ファイルも、メモリ消費の一つの要因となってしまう。
添付ファイル以外にも、mailmanは、HTMLファイルも保存をする。
まとめ読みをすると、
テキスト形式以外の添付ファイルを保管しました... ファイル名: xxxxxx.jpg 型: image/jpeg サイズ: 3077788 バイト 説明: 無し URL: <https://(ドメイン)/mailman/private/(リスト名)/attachments/YYYYMMDD/xxxxx/attachment.jpg>
というように、まとめ読みをしている登録者の方のために、サーバー上に、添付ファイルなどを保存してしまうのです
メモリ消費を抑えるには・・・
・まとめ読みをしない
ということが、いいかと思われます。
最新のバージョンでは、解消されているのか・・・(未調査です・・・(汗))
そして、「保存書庫」の作成をやめても、過去のファイルがサーバー上にあれば、やはり、メモリを消費してしまう。
まとめ読み用のファイルも同様に過去のデータを消さないと、メモリの消費は抑えられない。
過去のファイルを削除するには・・・
保存書庫の場所は、
(mailmanホーム)/archive/private/(リスト名).mbox/(リスト名)
です。
(mailmanホーム)/archive/private/(リスト名).mbox/(リスト名).mbox
というファイル名自体も削除します。
まとめ読みのファイルは、
(mailmanホーム)/archive/private/(リスト名).mbox/(リスト名)/attachments
以下に添付ファイルが保存されていきます。
「attachments」以下(attachmentsを含む)を削除します。
初期状態にして、mailmanを再起動
過去の保存書庫や、まとめ読みのためのデータもなくなり、
mailmanを再起動すると・・・
リストにメールを送付しても、メモリが肥大化しない!(パチパチ)