systemd-journal似乎具有较高的CPU使用率,与节点上的实际服务HAProxy相比:
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
OS:
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:
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使用率? 这是logging使用这么多的CPU应该是正常的?
首先,CPU使用率并不高。
因为它处理和保持更加结构化的数据,所以它比rsyslogd有更复杂的工作stream程。 如果您的服务对日志logging有很高的日志输出,那么journald被超载是正常的。
为了优化杂志; Journald在以下文件中具有下列设置作为默认值:
/etc/sysconfig/journald.conf #RateLimitInterval=30s #RateLimitBurst=1000
如果您的服务日志不重要,则可以降低速率限制以暂停重载日志的服务日志。 它也有缺点,你可能会失去你的日志。 你将通过journald来journald RateLimitInterval被挂起的日志计数,作为enrty而不是挂起的日志。
设置为“0”将禁用挂起,你将有更高的CPU使用率。
如果日志对于来自journald单独服务日志很重要,并使用rsyslogd 。 但是,这不是很高的CPU使用率。