Apache периодически зависает

Apache периодически зависает

У меня есть небольшой Debian VPS, размещенный в Rackspace, на котором работает мой личный веб-сервер. За последние несколько недель было несколько случаев, когда Apache (у меня 2.2.16) просто зависал на неопределенное время. Перезапуск Apache с помощью /etc/init.d/apache2 restartрешает проблему, пока она не возникнет снова. Из-за этого я почти уверен, что проблема не в DNS или конфигурации виртуального каталога (ничего из этого не изменилось с тех пор, как это началось).

Иногда это касается только динамических страниц, включающих PHP и MySQL, а статические HTML-страницы просто медленно загружаются; в других случаях все страницы зависают на неопределенный срок, пока я не перезапущу Apache. Если у меня открыта вкладка в Chrome, через некоторое время она может выдать ошибку ERR_CONNECTION_ABORTED; если я перезапущу Apache, он перестанет загружаться с ERR_CONNECTION_RESET.

Ничего нет, /var/log/apache2/error.logкроме веб-краулеров, ищущих несуществующие файлы. Сначала я думал, что это проблема с оперативной памятью (256 МБ, я экономный, но трафик составляет порядка нескольких сотен обращений в день, в основном веб-краулеры), но swap далеко не заполнен, процессы Apache простаивают, и хотя свободной памяти очень мало, она примерно такая же после загрузки нескольких страниц после перезапуска Apache. Производительность приемлемая, когда он работает, мне просто нужно выяснить, что заставляет его зависать после нескольких дней безотказной работы.

Я пробовал уменьшить MaxClients и увеличить MaxRequestsPerChild, но это не помогло:

 <IfModule mpm_prefork_module>
     StartServers          2
-    MinSpareServers       2
-    MaxSpareServers       4
-    MaxClients           10
-    MaxRequestsPerChild 200
+    MinSpareServers       1
+    MaxSpareServers       2
+    MaxClients            4
+    MaxRequestsPerChild 2000
 </IfModule>

(Эти настройки, как старые, так и новые, основаны на поиске в Google — существует масса противоречивой информации о том, что делает конфигурацию разумной.)

Есть идеи, как мне выяснить, что происходит? Где хорошие места, чтобы искать потенциальный тупик?

Побочный вопрос: поскольку сам VPS в порядке, есть ли какое-то задание cron, которое я могу запустить локально, чтобы оно оповещало меня, когда Apache начинает вести себя некорректно? (Мне не нужна мощная служба внешнего мониторинга вроде Pingdom.)

Связанный контент