「広告」

Mailmanが、メモリを大量消費

「広告」
記事内に広告が含まれています。
「広告」

サーバーの空きメモリが少なく、気になって、メモリの使用量をプロセス毎にチェックすると・・・
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を再起動すると・・・
リストにメールを送付しても、メモリが肥大化しない!(パチパチ)

「広告」

参考サイト。ありがとうございます。

過去ログ(保存書庫)の削除。 | 技術系メモ

タイトルとURLをコピーしました