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

использование памяти journald в CentOS 7

У меня есть экземпляр AWS EC2, на котором работает CentOS 7.7.1908 (systemd 219) с серверным приложением. Сервер записывает довольно много информации в системные журналы (используя syslog).

Недавно я включил постоянное хранение системных журналов, используя этот ответ. С тех пор, потребление памяти systemd-journald постоянно растет.

Через целый день systemd-journald в конечном итоге использует более 250 МБ ОЗУ.

Я провел быстрый тест, чтобы подтвердить, что использование RAM journald действительно растет.

Тест :

Результаты :

# ps aux | grep journald | grep -v grep
root     23963  0.0  0.1  61320  2500 ?        Ss   15:03   0:00 /usr/lib/systemd/systemd-journald
# for i in {0..7000}; do logger -t TEST -p err `python -c 'print "A"*1000'`; done;
# ps aux | grep journald | grep -v grep
root     23963  0.1  0.2  69512 11964 ?        Ss   15:08   0:00 /usr/lib/systemd/systemd-journald
# journalctl --flush
# ps aux | grep journald | grep -v grep
root     23963  0.1  0.2  69512 11964 ?        Ss   15:08   0:00 /usr/lib/systemd/systemd-journald
# systemctl restart systemd-journald
# ps aux | grep journald | grep -v grep
root     24237  0.0  0.1  55416  2492 ?        Ss   15:08   0:00 /usr/lib/systemd/systemd-journald

Использование памяти увеличивается с 2,5 МБ до почти 12 МБ после регистрации примерно 7 МБ данных. Перезапуск демона возвращает использование памяти до ~ 2,5 МБ.

Моя интерпретация:

Мой journald.conf:

[Journal]
#Storage=auto # /var/log/journal is created and used, so this is equivalent to 'Persistent'
SyncIntervalSec=1m
RateLimitInterval=0
RateLimitBurst=0
SystemMaxUse=4G
RuntimeMaxUse=1M

Как решить эту "утечку", не перезагружая сервис каждый день?