desenv-web-rp.com

Como você rastreia e depende de problemas de desempenho mysql?

Eu tenho um sistema de servidor em execução no Mac OS X 10.4 (Darwin Kernel versão 8.10.1). Este servidor é usado principalmente como um servidor Bugzilla, mas há alguns outros serviços baseados na Web em execução (Testlink, Tikiwiki).

O banco de dados Bugzilla tem cerca de 60000 bugs, e há cerca de 300 usuários ativos no sistema.

Bugzilla está na versão 3.0, executando em Perl 5.8.6, Apache 1.3.33 com MySQL 5.0.38

De tempos em tempos, temos sérios problemas que Bugzilla lança um erro de banco de dados:

Software error:

Can't connect to the database.
Error: Too many connections

Eu já tenho vários leads a possíveis soluções para este problema, mas queria trazer uma pergunta mais geral como você depuraria desses tipos de problemas?

No momento, configuramos o seguinte para monitorar o banco de dados MySQL:

  • Um trabalho cron que despejou a lista completa do MySQL a cada 5 minutos
  • Queries lentos ativados no my.cnf para registrar consultas que demoram mais de 15 segundos

Acabamos de começar a reunir esses dados para ver se podemos encontrar um motivo para o problema "muitas conexões".

Existem outras coisas que você possa imaginar para monitorar um banco de dados MySQL e ajudar a diagnosticar a causa raiz do problema?

6
Palmin

Um trabalho cron para o dumping é muito útil, mas apenas no caso de você não ter nada pronto para realmente gritar a coisa, posso recomendar Munin que tem plugins mysql para monitoramento

  • taxa de transferência
  • consultas
  • tamanho dos bancos de dados
  • consultas lentas
  • tópicos

o que pode ser muito útil para determinar picos. Eu corro em cinco minutos de intervalo por padrão.

Usando-o no último ano, descobri uma situação bastante interessante com ela antes que teria passado completamente despercebido caso contrário.

1
mark