修改 CentOS7 的系统日志限制

在有 IO 时调试 NFS,systemd-journald提示Missed kernel message信息,是由于同一时间日志输出太多导致的日志丢失。本文章将介绍如何调整系统日志限制。

Centos 7使用systemd-journald做日志中心库,使用rsyslog来持久化日志,使用logrotate来管理日志文件。详细请参考这篇文章

修改系统日志限制

修改 systemd-journald 限制

使用文本编辑器打开配置文件/etc/systemd/journald.conf,官方文档戳这里,添加以下内容:

1
2
RateLimitInterval=0s
RateLimitBurst=0

RateLimitIntervalRateLimitBurst用于限制日志的生成速度(设置为0表示无限制)。其中,RateLimitInterval用于设置一个时间段长度,默认值是30秒,单位可以是s/min/h/ms/usRateLimitBurst 用于设置一个正整数,表示消息条数,默认值是1000条。表示在 RateLimitInterval 时间段内, 每个服务最多允许产生 RateLimitBurst 数量(条数)的日志。 在同一个时间段内,超出数量限制的日志将被丢弃,直到下一个时间段才能再次开始记录。 特别的,这个限制是针对每个服务的限制,一个服务超限并不会影响到另一个服务的日志记录。

重启服务systemctl restart systemd-journald

关闭 rsyslog 限制

使用文本编辑器打开配置文件/etc/rsyslog.conf,在Global Directives字段中添加以下内容:

1
2
3
# Disable rate-limiting of log entries
$SystemLogRateLimitInterval 0
$SystemLogRateLimitBurst 0

类似systemd-journald,以上两个参数表示相同功能。

重启服务systemctl restart rsyslog