Назад | Перейти на главную страницу

Процессы Apache и MySQL, работающие на 100% ЦП

У меня есть производственный сервер, который обычно очень стабилен и работает уже очень давно.

Прошлой ночью внезапно стал показывать очень высокие нагрузки (150+). Деактивация Apache немедленно снизит нагрузку.

Вот результат команды top, вскоре после перезапуска Apache нагрузка уже вернулась к 22,68.

Журналы сервера и вывод mod_status не показывают ничего особенно интересного, кроме того, что запросы начинают резервное копирование из-за высокой нагрузки.

Совершенно не похоже, что есть какая-то необычная нагрузка на сервер с точки зрения запросов, объясняющих внезапную проблему.

Любые идеи?

ОБНОВИТЬ

Вот скриншот соединений mysql из show processlist;

  1. Уменьшите количество дочерних элементов, созданных Apache. Нет никакой пользы в том, что десятки веб-страниц спотыкаются друг о друга. Apache с радостью откладывает запуск новой страницы.
  2. Если "высокая средняя загрузка" вызвана MySQL, то, скорее всего, это отсутствующий индекс или плохо сформулированный SELECT. Найдите этот непослушный запрос и откройте вопрос на stackoverflow.com, чтобы обсудить, как его улучшить.

Для SHOW PROCESSLIST вы добавили, мой комментарий - Zzzzzzzzzzz. MySQL ничего не делает - обратите внимание, что практически все они находятся в спящем режиме. «Сон» - это состояние соединения (возможно, из пула соединений), которое ничего не делает, кроме ожидания отправки ему следующего оператора SQL.

Глядя на top... Похоже, что 2 ядра ЦП используются mysqld, а 6 ядер - Apache. Какого клиента вы используете? Что касается PHP, у вас есть загруженный PHP-код, который необходимо оптимизировать. Начните с рассмотрения каждого цикла, особенно вложенных циклов.

Что касается «внезапной проблемы», ... Подобные ситуации (по моему опыту) накапливаются какое-то время, а затем «внезапно» «прыгают через крышу». В конце концов они обычно расслабляются. Конечно, вы можете убить Apache или mysqld, перезагрузить или остановить клиентов. Между тем, ваши «пользователи» получают ужасный «пользовательский опыт».

Для справки в будущем проблема заключалась в отказе RAID-контроллера. Два идентичных сервера одинакового возраста потеряли свои контроллеры RAID в течение недели.

Не только отказал RAID-контроллер, но и системное уведомление о том, что RAID-контроллер отказал.