Я пытаюсь выяснить некоторые проблемы на моем сервере, где мой процессор достигает 100% использования через день. Это приводит к сбою всех моих веб-сайтов и служб http.
Как я могу настроить monit для перезапуска службы httpd, когда мой процессор достигает 100%, скажем, за 10 циклов?
Я все еще новичок в linux и centos. Изучая свой способ обойти это, я некоторое время пытался исследовать это, но я не мог найти правильного ответа на это.
Спасибо, что посмотрели
Обновить
Спасибо за ваш ответ. Когда процессоры работают на 100%, я запустил команду top и вижу, что пользователь никто не потребляет все это в службе httpd. У меня есть несколько приложений, которые используют скрипты php, но все их журналы ошибок кажутся нормальными.
Я подозреваю, что конкретная тема wordpress вызывает эту ошибку из-за цикла при обновлении веб-сайта. Этот конкретный веб-сайт также показывает мне ошибку с ошибкой теста обратной связи, в то время как все другие сайты WordPress на том же сервере работают нормально.
Итак, пока я не смогу выяснить виновника, я просто хочу перезапустить службу httpd, когда загрузка ЦП достигнет, скажем, 95% за 10 циклов.
Я надеюсь, что этого достаточно для того, чтобы кто-то любезно дал мне решение.
Как я могу настроить monit для перезапуска службы httpd, когда мой процессор достигает 100%, скажем, за 10 циклов?
Это приводит к сбою всех моих веб-сайтов и служб http.
Наверное, использовать
check process apache with pidfile /path/to/pid
start "/sbin/service/apache2 start"
stop "/sbin/service/apache2 stop"
if failed host 127.0.0.1 port 80
for 10 cycles
then restart
конечно, будет больше информации по M / Monit вики.
Вы предоставляете очень мало информации о стеке и проблеме. Вы даже не предоставляете информацию, какая служба / приложение потребляет 100% ЦП. Если вы даже думаете о перезапуске httpd, когда ваш процессор достигает 100%, это не решение, это глупо.
Используйте такие утилиты, как htop, iotop и сар чтобы выяснить, что использует ресурсы. Но согласно тому, что я вижу, моя догадка хрустального шара mod_php в httpd.
Как я могу настроить monit для перезапуска службы httpd, когда мой процессор достигает 100%, скажем, за 10 циклов?
Я бы использовал эту строку в Monit, чтобы получить то, что вы ищете:
if cpu > 100% for 10 cycles then restart
В целом это могло бы выглядеть примерно так:
check process httpd with pidfile /path/to/your/pid
group mail
start program = "/etc/init.d/httpd start"
stop program = "/etc/init.d/httpd stop"
if cpu > 100% for 10 cycles then restart
Хотя это должно происходить так, как вы просили, я не уверен, что это даст вам результаты, которые вы ищете, поскольку у Apache может одновременно выполняться несколько процессов.
Для ваших проблем с Wordpress Wordpress Query Monitor может помочь вам найти виновника.