Intereting Posts
apt пытается удалить linux-image-3.8.11 Функция Bash – exec для запуска программ Запуск Ubuntu после прерывания установки обновления Bash – Как найти все файлы НЕ в массиве Есть ли утечка памяти в Mint 16? Или что это? Как я могу найти объявление псевдонимов изгоев? Нет подсказки индикатора bash после завершения разветвленного процесса Начиная с CAD на linux Как изменить Grub 2 по умолчанию постоянно? Есть ли способ узнать, произошел ли перерыв в сети из журналов? Невозможно удалить файлы в качестве пользователя root с использованием последовательного поперечного кабеля RS232 Динамическая аутентификация пароля Как удалить имя из фамилии, когда длина неизвестна? Почему команда «find | grep 'filename' 'намного медленнее, чем «найти« имя файла »? Обтекание текста электронной почты способом, совместимым с форматом = flowed, например, с использованием параметра par

Почему OOM-Killer не может просто убить процесс, который требует слишком многого?

Здесь объясняется, что OOM-Killer можно настроить через overcommit_memory и что:

  • 1 = нет превышения. Выделения не могут возникнуть, если вы слишком много спрашиваете.
  • 0, 2 = overcommit. Убейте некоторые процессы (ы), основанные на некоторых эвристиках, когда на самом деле происходит обращение к большому количеству памяти.

Теперь я могу полностью понять это, но почему нет возможности (или почему это не по умолчанию), чтобы убить тот самый процесс, который на самом деле пытается получить доступ к слишком большому количеству выделенной памяти?

Рассмотрим этот сценарий:

  • У вас 4 ГБ свободной памяти.
  • Неисправный процесс распределяет 3,999 ГБ.
  • Вы открываете диспетчер задач, чтобы убить процесс побега. Диспетчер задач выделяет 0,002 ГБ.

Если процесс, который был убит, был последним процессом запроса памяти, ваш диспетчер задач будет убит.

Или:

  • У вас 4 ГБ свободной памяти.
  • Неисправный процесс распределяет 3,999 ГБ.
  • Вы открываете диспетчер задач, чтобы убить процесс побега. Сервер X выделяет 0.002 ГБ для обработки окна диспетчера задач.

Теперь ваш X-сервер убит. Это не вызвало проблемы; это было просто «в неправильном месте в неподходящее время». Это был первый процесс, который выделял больше памяти, когда их не было, но это не тот процесс, который использовал всю память для начала.