CentOS 上的 systemd-journal 219 CPU 使用率过高

CentOS 上的 systemd-journal 219 CPU 使用率过高

与节点上实际服务的 HAProxy 相比,systemd-journal 似乎具有较高的 CPU 使用率:

385   root      20   0   69948  26152  25776 S   3.0  0.2   0:04.05 systemd-journal
22509 haproxy   20   0   58264   7256   1812 S   1.3  0.0   0:00.45 haproxy

中央处理器:

vendor_id       : GenuineIntel
cpu family      : 6
model           : 63
model name      : Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz
stepping        : 2
microcode       : 0x25
cpu MHz         : 2400.139
cache size      : 30720 KB

操作系统:

Linux ip-172-33-30-32.eu-central-1.compute.internal 3.10.0-514.10.2.el7.x86_64 #1 SMP Fri Mar 3 00:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

系统:

systemd-219-30.el7_3.7.x86_64
systemd-libs-219-30.el7_3.7.x86_64
systemd-sysv-219-30.el7_3.7.x86_64

有没有办法优化 systemd-journal 以降低 CPU 使用率?日志记录使用这么多 CPU 是正常的吗?

答案1

首先,它的 CPU 使用率似乎不太高。

journald的工作流程比 更复杂rsyslogd,因为它以更结构化的形式处理和保存数据。如果您的服务向 输出的日志非常多journald,则 过载是正常的journald

为了优化 journald,Journald 在以下文件中具有以下默认设置:

/etc/sysconfig/journald.conf

   #RateLimitInterval=30s
   #RateLimitBurst=1000

如果您的服务日志不是关键的,您可以降低速率限制以暂停使 过载的服务的日志。 这也会带来一个缺点,即您可能会丢失日志。 您将通过在 内显示暂停的日志计数(而不是已暂停的日志)journald来收到通知。journaldRateLimitInterval

设置为“0”将禁用暂停,并且 CPU 使用率将更高。

如果日志对您来说很重要,请将服务日志journald与 分开使用rsyslogd。但这不会占用太多 CPU。

相关内容