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

На SmartOS как узнать, был ли процесс убит для OOM

Мой процесс-демон уничтожается почти сразу, как только начинает получать запросы. В журнале приложения нет абсолютно никаких сообщений об ошибках, даже когда я пытаюсь запустить его на переднем плане.

У меня есть подозрение, что ОС может убивать его для OOM, потому что для этого экземпляра виртуальной машины выделено только 512 МБ.

Я хотел бы выяснить, что вызывает это, но меня ставит в тупик тот факт, что файлов журналов очень мало:

# ls -la /var/log
total 20011
drwxr-xr-x   3 root     sys           10 Oct  9 02:38 .
drwxr-xr-x  31 root     root          31 May 15  2013 ..
-rw-r-----   1 root     root     4914932 Nov 15 16:34 auth.log
-rw-r--r--   1 root     root           0 Sep  9 15:49 courier.log
drwxr-xr-x   3 root     root           5 Nov  8 22:18 httpd
-rw-r--r--   1 root     root     2515768 Sep 10 03:10 postfix.log
-rw-r-----   1 root     other          0 Feb 21  2008 sysidconfig.log
-rw-r-----   1 root     sys      2514934 Sep 10 03:10 syslog
-rw-------   1 root     root         132 Nov  8 18:45 vsftpd.log
-rw-r--r--   1 root     root           0 Jun  5  2012 zoneinit.log

Как видите, системному журналу два месяца назад, новых записей в последнее время не было. И это все файлы журналов, которые я могу найти.

Я использую SmartOS:

SunOS hostname 5.11 joyent_20120504T040233Z i86pc i386 i86pc

У меня есть root-доступ к этому экземпляру (который на языке SmartOS называется «зоной», afaik), но я не контролирую всю систему.

я прочел Как мне узнать, убил ли Linux-сервер мой процесс и какой процесс он убил?, но в моем случае это не помогает.

Solaris / SmartOS не реализует OOM Killer. Так что это не так. Если приложение пытается запросить память, которая недоступна, приложению будет возвращена ошибка, и ему будет разрешено продолжить работу. Конечно, как приложение справляется с ошибкой - это другой вопрос.

Вы можете использовать truss / dtrace для проверки системных вызовов, выполняемых приложением, и поиска любых возвращаемых ошибок.

Вы также можете следить за процессом с помощью prstat, ps и т. Д., Чтобы узнать, сколько памяти он запрашивает / использует.