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

Apache порождает кучу процессов php-cgi, а их не существует - сайт зависает

Совершенно неожиданно apache начал не отвечать, когда я пытался загрузить свой сайт. Сайт основан на Drupal только для информации. Я проверил статус сервера, выполнив

service httpd status

и он показал, что apache все еще работает, хотя он не отвечает. Веб-сайт начинает загружаться, но никогда не завершает загрузку, а экран браузера просто белый. После того, как я перезапустил apache, он работал, но через полчаса снова произошел сбой. Дальнейшее расследование показало, что если я выдам

ps auxwwf

есть куча процессов php-cgi, которые просто существуют и никогда не завершаются. Если я сбегу

killall php-cgi

сайт снова начинает отвечать. Но опять зависает примерно через полчаса. Если я снова попытаюсь убить все процессы php-cgi, это больше не решит проблему, и мне придется перезапустить wole httpd.

Кто-нибудь знает, почему это происходит, в чем может быть причина и как исправить эту проблему.

Я использую CentOS 6 с Apache 2.2.27 и PHP 5.4.27. Мой сайт получает около 5000 уникальных посетителей в день.

Выяснилось, что Drupals cache_form таблица в базе данных была больше 6 ГБ, поэтому автоматическая очистка перестала работать. Когда процесс хотел получить доступ к этой базе данных, процесс php-cgi зависал. После очистки таблицы кеша вручную все стало работать нормально.