1、top查看
使用top命令查看系统的状态,M--按内存占用率排序
2、ps查看按内存排序的前2个进程
ps auxw|head -1;ps auxw|sort -rn -k4|head -2
[root@VM_42_193_tlinux /var/log]# ps auxw|head -1;ps auxw|sort -rn -k4|head -2
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 21049 0.1 59.5 9664240 9625952 ? Ss 2021 645:18 /usr/lib/systemd/systemd-journald
root 4426 0.0 31.4 5453296 5079852 ? Ssl 2020 718:59 /usr/sbin/rsyslogd -n
从上面可以看出是systemd-journald和rsyslogd两个进程最占内存。
查看当前配置:
*****************rsyslog*****************
[root@VM_17_95_tlinux ~]# cat /usr/lib/systemd/system/rsyslog.service
[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
[Install]
WantedBy=multi-user.target
;Alias=syslog.service
*****************systemd-journald*****************
[root@VM_17_95_tlinux ~]# cat /etc/systemd/journald.conf | grep Storage
#Storage=auto
[root@VM_17_95_tlinux ~]# ll /var/log/journal
ls: cannot access /var/log/journal: No such file or directory
从上面配置可以看出:
1)没有限制rsyslogd服务的内存使用率。
2)systemd-journald的Storage配置为默认的auto,且没有journal目录,这种情况下,表示日志存在内存中。
3、rsyslogd优化
新增配置到/usr/lib/systemd/system/rsyslog.service的[Service]中,再重启服务:
[root@VM_17_95_tlinux ~]# cat/usr/lib/systemd/system/rsyslog.service | grep Memory
MemoryAccounting=yes
MemoryMax=80M
MemoryHigh=8M
[root@VM_17_95_tlinux ~]# systemctl daemon-reload
[root@VM_17_95_tlinux ~]# systemctl restart rsyslog
4、systemd-journald优化
首先了解Storage配置的各个选项含义:
# man 5 journald.conf
通过查看man手册,你会发现,Storage=的值可以是volatile、persistent、auto、none,但是,默认的是auto。
volatile代表日志只存在内存中,即/run/log/journal/
persistent代表日志只存在磁盘中,即/var/log/journal/
auto代表日志存在磁盘中,或者内存中,这个取决于你是否创建/var/log/journal/目录!!这个也算是一个坑吧,看来大家都需要手动mkdir-p /var/log/journal/,systemctl restart systemd-journald来解放自己的内存了!!!
none,表示,日志不保留,全部drop,只有当你决定不使用systemd-journald的时候,你可以使用!
Storage=auto,根据需要,我们把日志改为存在磁盘中,只需要创建目录/var/log/journal,然后重启服务即可:
[root@VM_17_95_tlinux ~]# mkdir -p/var/log/journal/
[root@VM_17_95_tlinux ~]# systemctl restart systemd-journald
5、处理记录如下: