Время от времени у меня возникают странные проблемы. Мой VPS перегружается и не запрашивает. Приходится вручную перезагружать сервер, и только после этого сервер снова работает нормально. Но иногда проходит несколько часов, прежде чем я узнаю, что он перегружен, и все это время мои сайты не работают. Есть ли способ заставить Linux перезагружаться, если загрузка ЦП превышает 50%? Это мне очень поможет.
скрипты няни, такие как тот, который вам нужен, очень опасны и могут вызвать больше проблем, чем решить, я бы согласился с kaerast в том, что необходимо отследить основную причину проблем, глядя на созданный вами снимок экрана, похоже, что проблема может быть больше с памятью, чем с процессором.
есть ли какие-либо очевидные ошибки в ваших журналах ошибок apache или в / var / log / messages или / var / log / syslog
Ваша консоль ясно показывает apache2 OOM'ing.
В своей конфигурации Apache попробуйте настроить MaxRequests (который будет циклически включать процесс httpd после # запросов, что полезно, если ваше веб-приложение пропускает память) и / или MaxClients (что ограничит максимальное количество одновременных подключений, которые может обрабатывать ваш сервер)
«В некоторой степени» разумный подход к вычислению MaxClients заключается в применении этого уравнения:
(Physical RAM present) / (Average Size of Process) * 1.25 (to account for memory-sharing effects)
1,25 - это настраиваемый «коэффициент выдумки», который можно регулировать вверх и вниз. чем выше вы его поднимете, тем больше вы рискуете повредить ваш сервер.
Monit был бы хорошим простым решением для этого. Но вы можете изучить первопричину и выяснить, что вызывает высокую загрузку процессора, а затем либо оптимизировать свой код, либо получить более быстрый сервер.
Так как же выглядит ваша конфигурация Apache? Каковы ваши текущие настройки для этих параметров:
Есть большая вероятность, что ваша конфигурация Apache по умолчанию устанавливает эти параметры слишком высокими для памяти, доступной на вашем VPS. Создание слишком большого количества процессов Apache (которые для начала довольно сильно потребляют память) может легко привести вас в ту же ситуацию с памятью OOM, что и в журналах.