Como monitorar e reiniciar automaticamente o mysql?

4

Estou executando o mysql no Debian.

Existe uma maneira de monitorar o mysql e reiniciá-lo automaticamente se ele travar? Por exemplo, às vezes, o servidor começa a tirar 100% da CPU e começa a correr muito devagar. Se eu reiniciar o mysql, as coisas são limpas e o servidor começa a funcionar bem, mas nem sempre estou presente para reiniciá-lo manualmente.

Existe uma maneira de monitorar o mysql e se a cpu estiver acima de 95% por mais de 10 minutos, o mysql será reiniciado automaticamente

    
por Janak 22.01.2011 / 22:38

3 respostas

2

Você pode fazer isso com monit . Por exemplo, para alertar & reinicie o mysql, supondo que você execute o monit em um ciclo de 60 segundos:

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
O

monit é muito flexível e pode fazer praticamente qualquer tipo de monitoramento de processos, memória, etc. que você possa imaginar.

Isso provavelmente poderia ser feito com o ps-watcher também, mas é difícil fazer com que o ps-watcher se lembre desse tipo de estado e agir sobre isso. monit é a ferramenta certa para usar.

    
por 23.01.2011 / 09:20
0

Acredito que você está procurando e o Auto Nice Daemon .

    
por 22.01.2011 / 23:15
0

Com o Francisco em segundo lugar, aconselho a não reiniciar o MySQL desta forma. Porque:

  1. O pico da CPU indica atividade, o que significa que o reinício seria praticamente qualquer operação que o banco de dados estivesse fazendo.
  2. Usar uma CPU de até 100% não é uma coisa ruim, é para isso que o poder da computação é :-) Na verdade, você pode preferir olhar para a carga do servidor mais do que o uso da CPU em% que não dá qualquer indicação sobre algo errado.
  3. Dependendo de qual mecanismo você está usando, a transação com falha pode não ser reproduzida na reinicialização, o que significa que você perderá algumas delas.

Com isso dito, algumas coisas que você pode procurar:

  1. O MySQL está "bem" configurado para o servidor; como, tem espaço suficiente para o tamanho do banco de dados e as operações que ele executa?
  2. Existem outros serviços que causam essa carga? Em caso afirmativo, por que isso acontece?
  3. Finalmente, se isso "atrasa" a execução de outros serviços no servidor, você deve considerar o rebalanceamento dos recursos por serviço, para que a capacidade de computação do servidor seja compartilhada entre todos os serviços.
por 08.09.2015 / 19:31

Tags