Совершенно неожиданно 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 зависал. После очистки таблицы кеша вручную все стало работать нормально.