2.1.2 неожиданно умирает (Out of memory) [SOLVED]

Started by token, November 03, 2017, 03:42:28 AM

Previous topic - Next topic

token

Добрый день.

После обновления с версии 2.0.8 на 2.1.2 обнаружилось крайне неприятное поведение. Процесс netxmsd стал неожиданно завершать работу. В логах ядра обнаружилось вот такое сообщение:

Nov  2 21:50:14 hostname kernel: [14817161.433447] Out of memory: Kill process 21117 (netxmsd) score 27 or sacrifice child
Nov  2 21:50:14 hostname kernel: [14817161.433805] Killed process 21117 (netxmsd) total-vm:2699144kB, anon-rss:226604kB, file-rss:9100kB


Программа установлена на сервере Ubuntu Linux и репозитория.

$ uname -a
Linux hostname 4.4.0-59-generic #80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux


$ apt list --installed | grep netxms

netxms-agent/xenial,now 2.1.2-1 amd64 [installed]
netxms-base/xenial,now 2.1.2-1 amd64 [installed,automatic]
netxms-dbdrv-pgsql/xenial,now 2.1.2-1 amd64 [installed]
netxms-dbdrv-sqlite3/xenial,now 2.1.2-1 amd64 [installed,automatic]
netxms-release/now 1.1 all [installed,local]
netxms-server/xenial,now 2.1.2-1 amd64 [installed]


Как это лечить?

token

Возможно поможет изменение 'shmmax'. Взято отсюда: https://www.netxms.org/forum/installation/1-2-16-database-migration-out-of-memory-(solved)/

kernel.shmmax = 2000000000
Добавлено с sysctl.conf

$ sysctl -a | grep shmmax
kernel.shmmax = 2000000000


Буду наблюдать...

token

Виновником такого поведения оказался Out Of Memory Killer. Статья с сайта Oracle: http://www.oracle.com/technetwork/articles/servers-storage-dev/oom-killer-1911807.html
После установки 'kernel.shmmax', процесс netxmsd OOM Killer вроде бы перестал трогать, а стал убивать процесс tomcat-а.
Дальнейшее копание привело к этой статье https://plumbr.io/blog/memory-leaks/out-of-memory-kill-process-or-sacrifice-child, а в частности к комментарию в конце, и к 'kernel.shmmax' было так же добавлено 'vm.swappiness = 5'.
С такими настройками сервер благополучно пережил длинную праздничную ночь с пятницы на вторник. Тенденция роста занимаемой процессом netxmsd памяти, однако сохраняется.

~$ cat /etc/sysctl.conf
kernel.shmmax = 2000000000
vm.swappiness = 5