Назад | Перейти на главную страницу

Перезагрузите apache с помощью monit

Я пытаюсь выяснить некоторые проблемы на моем сервере, где мой процессор достигает 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 может помочь вам найти виновника.