Назад | Перейти на главную страницу

Высокая загрузка ЦП с systemd-journal 219 на CentOS

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. Но опять же, это не очень высокая загрузка процессора.