OOM-Killer звонил время от времени

1585
SpyrosP

У меня есть выделенный сервер, на котором я установил 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 минут.

5
Да, пока вы не запустите скрипт, определяющий, какие процессы растут, когда и как быстро, это не вопрос, на который нужно отвечать. SilverbackNet 13 лет назад 0

1 ответ на вопрос

1
Waxhead

Ядро Linux по умолчанию перегружает память, так что иногда программа успешно выделяет память, недоступную, а OOM запускает и уничтожает случайный процесс. Отключение этого, возможно, позволит вам определить, какое приложение крадет память. Например, если приложение внезапно выделяет огромный кусок памяти, оно завершится ошибкой (и, надеюсь, вернет сообщение об ошибке). Другие приложения также могут не выделять память, поэтому вам следует остерегаться ложных срабатываний.

echo 2> / proc / sys / vm / overcommit_memory