Я работаю в среде, которая только что была обновлена до Amazon Linux 2015.03 с Debian 6, довольно большой скачок.
На новой платформе экземпляр сервера несколько раз блокировался из-за нехватки памяти. Это происходит из-за мошеннического процесса apache, который потребляет невероятный объем памяти и выполняет OOM-объект.
Причина проблемы - новая функция, которая была добавлена в веб-приложение несколько месяцев назад и дорабатывается и исправляется, но на самом деле этот вопрос касается OOM killer.
Проблема действительно возникла только после перехода в новый стек, так что это была проблема с новым стеком. При тестировании старого стека с воспроизводимой ситуацией то же самое произошло и там, однако убийца OOM надежно срабатывает каждый раз и убивает беглый процесс.
В новой системе память заполняется, и система блокируется. В некоторых случаях он немедленно восстанавливается, и система в порядке, но в большинстве случаев система зависает и ее необходимо перезапустить. В редких случаях система вернется примерно через 15-30 минут, и в системном журнале появится сообщение об убийстве OOM.
Я пытаюсь понять, почему OOM killer нормально работает в старом стеке (настолько, что проблема не замечена), но не работает в новом?
Ура
Изменить: можно ли выделить определенный объем памяти для функций ядра, таких как OOM killer. Я думаю, возможно, что у самого OOM killer нет ресурсов для запуска