Как вы можете получить больше информации о процессах, когда Linux не хватает памяти?

StackOverflow https://stackoverflow.com/questions/120000

  •  02-07-2019
  •  | 
  •  

Вопрос

Недавно у меня возникла проблема с тем, что oom-killer через некоторое время начал убивать процессы.Я видел, что память израсходована, но к тому времени, как я добрался до сервера, уже не было ясно, что ее потребляет.Есть ли хорошее неочевидное место, где можно получить больше информации об oom-killer?Например.подробная информация о процессах на момент активации, подробная информация об убитых процессах и причинах выбора?

Я ищу конкретное место, где можно найти эту информацию, конкретный инструмент для ее сбора или какую-то конфигурацию для улучшения отчетов oom-killer.Я не ищу общую информацию о oom-killer./var/messages по умолчанию будет содержать только подробный отчет о свободной/выделенной памяти, но не о конкретных процессах, которым она была выделена.

Это было полезно?

Решение

Вы можете проверить файл журнала сообщений, чтобы узнать, какой процесс был завершен, и некоторую соответствующую информацию.Что касается причин:

...Идеальным кандидатом на ликвидацию является недавно запущенный непривилегированный процесс, который вместе со своими дочерними процессами использует много памяти, был оптимизирован и не выполняет необработанный ввод-вывод.Что-то вроде параллельной сборки ядра с помощью nohup (это неплохой выбор, поскольку все результаты сохраняются на диск и очень мало работы теряется при завершении команды make).

От здесь.

Вы можете определить некоторые процессы, чтобы они были невосприимчивы к убийце, настроить параметр подкачки, если он у вас слишком низкий (что делает триггер убийцы счастливым) и проверить перечисленные вещи. здесь

Другие советы

Обычно вы должны получить сообщение в /var/log/messages с довольно большим количеством подробностей, касающихся процесса, который был уничтожен oom-killer.

Это не точный ответ на ваш вопрос, но malloc(3) На странице руководства Linux есть информация о том, как отключить перераспределение памяти.

echo 2 > /proc/sys/vm/overcommit_memory
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top