Предыстория: у меня есть очень старый сайт, работающий на очень старом VPS, очень старый Apache и очень старый PHP, который я не могу обновить, потому что это очень старая машина CentOS. Это современный сайт WordPress, который обслуживает около 100 страниц в минуту при настройке suExec. Да, 100 в минуту.
Сегодня сайт отключился примерно на 15 минут, начиная с 19.01. Первое соответствующее сообщение в файле журнала ошибок следующее:
[Пт, 01 августа 19:01:41 2014] [ошибка] [клиент: a.b.c.d] Преждевременное завершение заголовков скрипта: index.php, referer: ...
В файле журнала, заканчивающемся на 7:02, есть еще около двух или трехсот сообщений об ошибках. Google Analytics сообщает мне, что сайт продолжал отвечать на 1-2 запроса в минуту. В 7:15 он снова начал нормально отвечать, без моего вмешательства. В файле журнала ошибок есть обычные уведомления Apache о запуске, например:
Пт, 01 августа, 19:16:17 2014] [уведомление] включен механизм suEXEC (оболочка: / usr / local / apache / bin / suexec)
Я не понимаю, что вызывает это. Может быть, на сервере, в Apache или PHP не хватает памяти? Запуск top дает это для памяти, поэтому кажется, что это должно быть что-то еще:
Mem: 1048576k total, 472756k used, 575820k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached
Нам нужно пройти следующие две недели, после чего мы перейдем на новый хост. На этом этапе мы отказываемся от VPS, но нам нужно выжать из старого дерьма как можно больше надежности.
Просто добавьте монитор, который отправляет динамический запрос на сервер, решает, достаточно ли быстро он ответил, и перезапускает его, если нет. Учитывая, что ваши серверы либо выходят из строя, либо переходят в режим 1 / мин, обнаружить неработоспособный сервер относительно легко.
Вы действительно никогда не должны запускать «очень старый» Apache или PHP. У них обоих есть дыры в безопасности. Если вы не обновляете их ежедневно, вы напрашиваетесь на проблемы, потому что хакеры могут просто запустить дыру в безопасности на прошлой неделе на вашем сервере, и тогда у них будут все ваши серверы и точка входа в остальную часть вашей сети.