Скрипт балансировки нагрузки на сервер

У меня есть сервер (Ubuntu), который обслуживает несколько доменов и запускает серию скриптов cron. Однако нагрузка на сервер не может быть предсказана, поэтому я не могу установить правильное количество нагрузки в скриптах cron.

Однако скрипты, которые запускаются в cron, время от времени перегружаются и создают огромную нагрузку как на процессор, так и на память, что приводит к остановке нескольких служб сервера (например, почтового сервера).

Вопрос: как я могу написать скрипт, который запускает подпрограммы, которые теперь находятся в cron, только когда нагрузка на сервер ниже минимального порога? Есть ли приложение, которое делает это под Linux?

Спасибо за ваше время!

1 ответ

Вы можете проверить управление системой мониторинга. Вы можете добавить это в свой файл конфигурации:



   # Мониторинг веб-сервисов apache2.
    # Он проверит процесс apache2 с заданным файлом pid.
    # Если имя процесса или путь к pidfile неверно, то monit будет
    # дать ошибку не удалось. жесткий Apache2 работает.
    проверить процесс apache2 с помощью pidfile /var/run/apache2.pid
     start program = "/etc/init.d/apache2 start"
     остановить программу = "/etc/init.d/apache2 stop"
     # Администратор уведомит по почте, если ниже условие выполнено.
     если процессор больше 60% в течение 2 циклов, тогда оповещение
     если процессор> 80% в течение 5 циклов, перезапустите
     если totalmem > 200,0 МБ для 5 циклов, перезапустите
     если дети> 250, то перезагрузите
     если loadavg(5 минут) больше 10 в течение 8 циклов, остановите
     если 3 перезапускается в течение 5 циклов, то время ожидания
     групповой сервер

Это хороший инструмент, и вы можете искать, как выполнить свой собственный скрипт, когда условие выполнено.

Другие вопросы по тегам