systemd-journald のメモリ使用量を節約する
systemd-journald
はログを収集しているプロセスですが、RSS
が 40〜80MB くらいあって、「もうちょっとメモリを使うの控えてくれない?」と常々思っていました。私が契約している VPS はメモリが 1GB しかないので、10% 近く使われてしまうのは、ちょっとキツいです。ここでは、メモリ使用量を減らす設定を紹介します。
設定
いきなり結論から書きますが、/etc/systemd/journald.conf
を以下のように設定します。
これで、私の環境では systemd-journald
の RSS
は 19MB くらいで頭打ちになっています。
[Journal] SystemMaxFileSize=16M SystemMaxFiles=256
他の設定はデフォルトです。大事なログが消えてしまうといけないので、もう少しお付き合いください。
まず、前提として、Storage=auto
(デフォルト)の設定で、保存先のディレクトリ /var/log/journal/
が存在するとします。Storage=persistent
と設定した場合と同じ挙動です。
ログファイル 1つのサイズを 16MB に制限(16MB を越えたら、ログローテーション)します。過去ログは 256ファイル保持します。デフォルト設定(ログファイル 1つのサイズが 512MB で、過去ログを 8ファイル保持 512MB × 8 = 4GB)に準じた量(16MB × 256 = 4GB)のログを保持する設定です。ログの容量についてポリシーのある場合は、以上のことをご理解の上で、パラメータを調整してください。
設定が終わったら、systemd-journald
を再起動して設定を反映し、一回だけログローテーションを手動で実行します。
# systemctl restart systemd-journald # journalctl --rotate
以上で、systemd-journald
のメモリ消費が抑えられます。