systemd-journal, похоже, имеет большую загрузку ЦП по сравнению с 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
ОПЕРАЦИОННЫЕ СИСТЕМЫ:
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, чтобы снизить загрузку процессора? Предполагается, что это нормально, если при ведении журнала используется столько ресурсов процессора?
Во-первых, это не похоже на высокую загрузку процессора.
journald
, имеет более сложный рабочий процесс, чем rsyslogd
, поскольку он обрабатывает и хранит данные в более структурированной форме. Если у вас очень высокий вывод журнала в journald
к вашим услугам, это нормально, что journald
перегружен.
Чтобы оптимизировать journald; Journald имеет следующие настройки по умолчанию в следующем файле:
/etc/sysconfig/journald.conf
#RateLimitInterval=30s
#RateLimitBurst=1000
Если ваши журналы службы не являются критическими, вы можете снизить ограничения скорости, чтобы приостановить журналы службы, которая перегружает journald
. Это также имеет недостаток, заключающийся в том, что вы можете потерять свои журналы. Вы будете уведомлены journald
указание количества приостановленных журналов в RateLimitInterval
, как enrty вместо приостановленных журналов.
Установка на «0» отключит приостановку, и у вас будет гораздо более высокая загрузка процессора.
Если журналы важны для вас, отделите журналы обслуживания от journald
и использовать rsyslogd
. Но опять же, это не очень высокая загрузка процессора.