美文网首页
rsyslogd内存占用很高解决方案

rsyslogd内存占用很高解决方案

作者: 雪消魂 | 来源:发表于2023-04-24 15:12 被阅读0次

临时解决方法(限制服务内存)

1、修改rsyslogd服务配置文件

vim /usr/lib/systemd/system/rsyslog.service

在Service配置中添加MemoryAccounting=yes,MemoryMax=80M,MemoryHigh=8M三项如下所示。

[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

通常情况下rsyslogd大小只有5M,所以将内存上限设置为8M,然后将绝对内存限制为80M。

2、重启服务

systemctl daemon-reload
systemctl restart rsyslog

结论:但过一段时间,rsyslog进程还是会超过80M限制。

根本原因

查看rsyslog输出的日志/var/log/

路径 描述
/var/log/messages 服务信息日志(记录linux操作系统常见的服务信息和错误信息)
/var/log/secure 系统的登陆日志(记录用户和工作组的变化情况,是系统安全日志,用户的认证登陆情况
/var/log/maillog 邮件日志
/var/log/cron 定时任务
/var/log/boot.log 系统启动日志

发现/var/log/messages有几个G的日志。查看日志内容发现rsyslog把Journal的log都进行的输出和汇总。当容器越多是,log也就会也多,内存占用也就越多。同时也可能导致systemd-journald内存占用过高

1、修改Journal的配置/etc/systemd/journald.conf

把Storage改为persistent,如下:

[Journal]
Storage=persistent
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
RateLimitInterval=45s
#RateLimitBurst=1000
SystemMaxUse=200M
#SystemKeepFree=
#SystemMaxFileSize=
#RuntimeMaxUse=200M
#RuntimeKeepFree=
#RuntimeMaxFileSize=
MaxRetentionSec=5day
#MaxFileSec=7day
#ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
#LineMax=48K

2、重启生效

systemctl restart systemd-journald

3、Storage选项扩展

Storage=的值可以是volatile,persistent, autoandnone,但是,默认的是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的时候,你可以使用!

相关文章

  • python学习笔记:当创建大量实例是如何节省内存

    问题 当创建大量(比如百万级)实例,占用了大量内存 解决方案 在类定义中增加slot属性,大量减少对内存的使用。示...

  • 11.2-1 Bitmap2 OOM

    简介 Out Of Memory(内存溢出):占用内存超出系统分配内存; memory leak(内存泄漏):占用...

  • linux pmap命令

    查看进程123占用内存情况 查看进程123占用内存情况--详细 查看进程123占用内存情况--更详细

  • Windows 内存泄漏

    常见 大部分情况,内存占用严重,原因只是一些软件的常见内存指标(如专用内存、提交大小等)很高,那么关闭它们就可以了...

  • java系统内存占用高----慢慢寻找之路

    近期发现很多系统在预发和线上相继出现内存占用很高的情况,但是没有内存溢出,一直到吃光内存为止,然后就开始了慢...

  • JAVA性能优化,让程序更快更稳定

    本文主要通过分析云系统遭遇的java进程内存溢出的问题,介绍java进程占用系统内存高时的排查方案及建议的解决方案...

  • 2019-04-18

    # gitlab内存占用解决方案 ### 一、问题描述分析 公司服务器在阿里云上配置如下图, ![Alt text...

  • js的十种排序算法

    n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外内存稳...

  • 内存占用

    top 查看内存占用PID:进程的IDUSER:进程所有者PR:进程的优先级别,越小越优先被执行NInice:值V...

  • linux 内存使用情况

    内存占用

网友评论

      本文标题:rsyslogd内存占用很高解决方案

      本文链接:https://www.haomeiwen.com/subject/qlvujdtx.html