Я запускаю mysql на Debian.
Есть ли способ контролировать mysql и автоматически перезапускать его, если он зависает? Например, иногда сервер начинает использовать 100% процессора и начинает работать очень медленно. Если я перезапускаю mysql, все проясняется, и сервер начинает работать нормально, но я не всегда присутствую, чтобы перезапустить его вручную.
Есть ли способ контролировать MySQL, и если загрузка ЦП выше 95% в течение более 10 минут подряд, MySQL будет автоматически перезапущен
Вы можете сделать это с помощью контролировать. Например, чтобы предупредить и перезапустить mysql, предполагая, что вы запускаете monit в 60-секундном цикле:
check process mysqld
with pidfile /var/run/mysqld.pid
if cpu usage > 99% for 10 cycles then alert
if cpu usage > 99% for 10 cycles then restart
monit очень гибок и может выполнять практически любой вид мониторинга процессов, памяти и т. д., о котором вы только можете подумать.
Вероятно, это можно было бы сделать с пс-наблюдатель тоже, но трудно заставить ps-watcher запоминать такое состояние и действовать в соответствии с ним. monit - правильный инструмент.
Попутно Франциско, я бы посоветовал не к перезапустите MySQL таким образом. Так как:
С учетом сказанного, вы можете искать:
Я считаю, что ты ищешь и Auto Nice Daemon.