
目录
使用top命令查看内存占用时,发现rsyslogd内存占用很高。

journalctl -u rsyslog查看状态
tail /var/log/messages查看messages日志![]()
执行journalctl --verify命令检查发现系统日志卷文件损坏错误

1、删除上面损坏的journal文件
2、删除 /var/lib/rsyslog/imjournal.state文件
3、修改rsyslogd服务配置文件后重启rsyslog
vim /usr/lib/systemd/system/rsyslog.service
在Service配置中添加MemoryAccounting=yes,MemoryMax=80M,MemoryHigh=8M 三项来限制服务内存使用率,如下所示:
- [Unit]
- Description=System Logging Service
- ;Requires=syslog.socket
- Wants=network.target network-online.target
- After=network.target network-online.target
- Documentation=man:rsyslogd(8)
- Documentation=http://www.rsyslog.com/doc/
-
- [Service]
- Type=notify
- EnvironmentFile=-/etc/sysconfig/rsyslog
- ExecStart=/usr/sbin/rsyslogd -n $SYSLOGD_OPTIONS
- Restart=on-failure
- UMask=0066
- StandardOutput=null
- Restart=on-failure
- MemoryAccounting=yes
- MemoryMax=80M
- MemoryHigh=8M
-
- [Install]
- WantedBy=multi-user.target
- ;Alias=syslog.service
通常情况下rsyslogd大小只有5M,所以将内存上限设置为8M,然后将绝对内存限制为80M。
重启服务
- systemctl daemon-reload
- systemctl restart rsyslog
