![systemd-journal 速率限制](https://linux22.com/image/731557/systemd-journal%20%E9%80%9F%E7%8E%87%E9%99%90%E5%88%B6.png)
我在 CentOS 7 上设置了一个服务,输出很多日志消息,这会导致系统日志/日志中出现以下内容:systemd-journal[xxxx]: Suppressed 864 messages from /system.slice/example.service
。
但是,我想查看所有服务消息以进行调试和诊断。此外,我想禁用速率限制,因为这只是一个测试服务器。
我已经在 /etc/systemd/journald.conf 中设置了RateLimitInterval=0
,RateLimitBurst=0
但 systemd-journal 似乎不遵循此设置。systemctl restart systemd-journald
命令或系统重启似乎不起作用。
关于如何诊断此问题,您有什么建议吗?是否有命令可以显示 systemd-journald 当前正在使用的配置?
答案1
由于 syslog 既不是设计用于处理非常大的消息,也不是设计用于处理连续的消息流,因此您应该考虑写入纯文本文件,而不是使用 syslog 服务。
如果“消息”是调试类型的消息,则尤其如此。
此外,“速率限制”可以有两种不同的含义:
- 您发送的消息数量想输出
- 你发送的消息数量能输出
journald.conf的手册中有解释:
如果在 定义的时间间隔内,服务记录的
RateLimitIntervalSec=
消息数量超过 中指定的数量,则该间隔内的所有其他消息将被丢弃,直到间隔结束。RateLimitBurst=
因此显然您希望将其做得RateLimitIntervalSec
较小(比如 1 秒),同时又将其做得RateLimitBurst
较大(比如几百万,假设系统可以在不到 1 微秒的时间内处理 syslog 消息)。