5

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

1

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

echo 2> /proc /sys /vm /overcommit_memory

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .