OOM-Killer звонил время от времени
У меня есть выделенный сервер, на котором я установил apache2
, так же как rails-passenger
, Хотя у меня 2 ГБ ОЗУ, и в большинстве случаев около 1,5 ГБ свободно, бывают случаи, когда я теряю ssh
и общее подключение, потому что oom-killer
убивает процессы.
Я предполагаю, что есть утечка памяти, но я не могу выяснить, откуда это происходит. oom-killer
убийств apache2
, mysql
, passenger
и что угодно.
Вчера я сделал cat syslog | grep -c oom-killer
и получил 57 случаев!
Кажется, что-то серьезно разрушает память. После перезагрузки все приходит в норму. Я подозреваю, что это может быть связано с passenger
, но я все еще пытаюсь понять это.
Можете ли вы придумать другую причину или у вас есть что предложить, чтобы упростить процедуру идентификации утечки? Я даже думал о написании сценария Bash, чтобы работать с cron
как каждые 5 минут.
1 ответ
Ядро Linux по умолчанию перегружает память, так что иногда программа успешно выделяет память, недоступную, а OOM запускает и уничтожает случайный процесс. Отключение этого параметра, возможно, позволит вам определить, какое приложение крадет память. Например, если приложение внезапно выделяет огромный кусок памяти, оно завершится ошибкой (и, надеюсь, вернет сообщение об ошибке). Другие приложения также могут не выделять память, поэтому вам следует остерегаться ложных срабатываний.
echo 2> / proc / sys / vm / overcommit_memory