与节点上实际服务的 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
来收到通知。journald
RateLimitInterval
设置为“0”将禁用暂停,并且 CPU 使用率将更高。
如果日志对您来说很重要,请将服务日志journald
与 分开使用rsyslogd
。但这不会占用太多 CPU。