systemd-journal 速率限制

systemd-journal 速率限制

我在 CentOS 7 上设置了一个服务,输出很多日志消息,这会导致系统日志/日志中出现以下内容:systemd-journal[xxxx]: Suppressed 864 messages from /system.slice/example.service

但是,我想查看所有服务消息以进行调试和诊断。此外,我想禁用速率限制,因为这只是一个测试服务器。

我已经在 /etc/systemd/journald.conf 中设置了RateLimitInterval=0RateLimitBurst=0但 systemd-journal 似乎不遵循此设置。systemctl restart systemd-journald命令或系统重启似乎不起作用。

关于如何诊断此问题,您有什么建议吗?是否有命令可以显示 systemd-journald 当前正在使用的配置?

答案1

由于 syslog 既不是设计用于处理非常大的消息,也不是设计用于处理连续的消息流,因此您应该考虑写入纯文本文件,而不是使用 syslog 服务。

如果“消息”是调试类型的消息,则尤其如此。

此外,“速率限制”可以有两种不同的含义:

  • 您发送的消息数量输出
  • 你发送的消息数量输出

journald.conf的手册中有解释:

如果在 定义的时间间隔内,服务记录的RateLimitIntervalSec=消息数量超过 中指定的数量,则该间隔内的所有其他消息将被丢弃,直到间隔结束。RateLimitBurst=

因此显然您希望将其做得RateLimitIntervalSec较小(比如 1 秒),同时又将其做得RateLimitBurst较大(比如几百万,假设系统可以在不到 1 微秒的时间内处理 syslog 消息)。

相关内容