排查问题
使用top
再按大写M
, 对内存采用降序显示,一目了然看到谁占用内存最高。
定位到rsyslogd
进程占用内存25.7%,非常可怕,需要急需解决掉它。
什么是
rsyslog
: 系统提供的多线性日志系统,参考: https://www.rsyslog.com/
解决问题
rsyslogd
是它的守护进程,可以通过systemctl status rsyslog
查看运行状态
红色显示错误信息。
使用
journalctl --verify
检查系统日志卷文件损坏情况如果检查出来有红色的文件,则直接删除即可。
删除
/var/lib/rsyslog/imjournal.state
文件重启
rsyslogd
进程,systemctl restart rsyslog
然后使用 top
查看,内存占用率是否没有啦。
避免再次发生
修改
/etc/rsyslog.conf
文件最后行添加2行代码
$imjournalRatelimitInterval 0 $imjournalRatelimitBurst 0
重启服务:
systemctl restart rsyslog
关闭
journal
压缩配置vim /etc/systemd/journald.conf # 找到 #Compress=yes 修改成 no Compress=no # 重启服务 systemctl restart systemd-journald