Я получаю, казалось бы, случайные зависания сервера (особенно OOM-ing), и у меня заканчиваются навыки, пытаясь отследить это.
Я использую Debian 5 VS с Apache / mySQL / PHP. У меня тоже есть Postfix, использующий mySQL.
Я был в ssh-ed, когда это случилось в последний раз, когда я использовал верхнюю часть, чтобы увидеть: 1. Средняя нагрузка выросла более чем на 25 и выше 2. ЦП в режиме ожидания 49,8%, простоя 48,6%, так что какая-то блокировка ввода-вывода? 3. 13 процессов apache2, всего 41,4% памяти 4. mySQL показывает только 2,6% памяти
Показана память: Mem: всего 524512k, занято 518144k, 6368k свободно, 800k буферов Swap: всего 262136k, использовано 261024k, 1112k свободно, 22824k кэшировано
У меня установлен Munin, и он не показывает (моим неопытным глазам) что-либо действительно патологическое, происходящее в то время, когда это произошло - даже postfix мало что делает с точки зрения размера очереди
df сообщает мне, что я использую только 58% своего диска, так что я еще не близок к тому, чтобы заполнить его.
php.ini установлен на 128 МБ максимальной памяти, максимальное время выполнения 30 секунд
Я копался в журналах apache и mySQL, но ничего не вижу.
Может ли кто-нибудь предложить следующий шаг с точки зрения того, какой дополнительный мониторинг я мог бы поставить на сервер или дальнейшее ведение журнала?
С наилучшими пожеланиями
Питер
Вы можете попробовать ab (тест apache), чтобы нагружать сервер, но если «мошеннический код» находится где-то глубоко в вашем коде, вам потребуется лучшая отладка. Вы должны регистрировать медленные запросы в своей БД.
Вы также можете использовать sar для регистрации системной статистики. К сожалению, лучший способ увидеть, что происходит, - это войти в систему, когда это происходит, и увидеть, что делает каждый процесс. Вы также можете написать сценарий для этого, но он может перестать работать из-за нагрузки.
Неудивительно видеть срабатывание OOM-killer, ведь у вас закончилась память! У вас есть только 512 МБ памяти, а в настоящее время не так много, и ВСЕ ваши 256 МБ пространства подкачки используются.
Я предлагаю вам купить больше модулей памяти и добавить их на свой сервер.
Какие процессы убивает OOM-killer apache2? Вы должны проверить это в своем / var / log / messages.