如何释放 systemd-journal 占用的内存
type
Post
status
Published
date
Jun 23, 2023
slug
systemd-journal
summary
tags
Linux
Server
Memory
icon
查看内存占用
使用
ps aux --sort -rss
查看系统内存占用,发现 systemd-journal
占用很多内存清理
- 清除到只剩下最新的 100M 空间:
journalctl --vacuum-size=100M
- 清除到只剩下最近两小时:
journalctl --vacuum-time=2h
- 将内存盘中的数据刷到硬盘:
journalctl --flush
- 或者采用很黄很暴力的清除方法(不推荐):
rm -rf /run/log/journal && systemctl restart systemd-journal
解决方法
修改
/etc/systemd/journald.conf
配置Storage=
volatile
,journal 将会保存在内存中,使用位于内存盘的/run/log/journal
目录(会自动创建)
persistent
,journal 将会保存在磁盘中,使用/var/log/journal
目录 (会自动创建),如果自动创建失败,以及针对启动早期磁盘尚未挂载成功的部分日志, 仍然记录在内存盘。
auto
,那么,如果/var/log/journal
目录存在,则使用该目录记录到磁 盘,如果目录不存在(不会自动创建),则使用内存盘。
none
,完全不记录任何日志(但是仍然可以转发给 rsyslog)
- 默认是
auto
SystemMaxUse
是指日志占用磁盘空间的最大限制。例如,如果您希望系统最多使用 10GB 的空间来存储日志,可以将其设置为 SystemMaxUse=10G
。RuntimeMaxUse
是指 journald 运行时允许使用的空间上限。例如,如果您希望 journald 最多使用 1GB 的内存来缓存日志,可以将其设置为 RuntimeMaxUse=1G
默认情况下,
SystemMaxUse
和 RuntimeMaxUse
都被设置为系统最大可用内存和磁盘空间的 10%。重启
systemd-journal