400% de uso da CPU para o MySQL? O que? O que devo fazer?

1
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
19857 mysql     20   0  514m  47m 3404 S  386  9.7   4511:45 mysqld
15659 www-data  20   0  205m  11m 4856 S    7  2.3   0:00.67 apache2
15701 www-data  20   0  205m  11m 4424 S    5  2.2   0:00.19 apache2
15700 www-data  20   0     0    0    0 Z    1  0.0   0:00.02 apache2 <defunct>

Estes são os meus resultados de top no Ubuntu. Foi curioso saber por que meu site continua caindo hoje. Poderia ser isso?

Por que o MySQL está usando 386% da CPU? Isso é normal? O que posso fazer para corrigir isso?

    
por Kyle 11.10.2011 / 00:09

1 resposta

5

... por onde começar.

É normal que o seu site esteja realmente ocupado e você possa justificar o uso. No entanto, é provável que você tenha algumas consultas não-otimizadas e estruturas de tabela ruins que estão causando a maior parte da sua dor.

Eu provavelmente começaria a olhar para mysqladmin processlist para ver quais consultas estão sendo executadas por mais tempo e começar a otimizar a partir daí.

Você também pode habilitar o log de consultas lentas no MySQL para obter uma ideia de longo prazo do que está acontecendo e quais consultas estão causando a dor.

Para consertar isso de forma abrangente, você realmente precisa colocar seu chapéu de DBA e ir de lá. Se você não tem o conhecimento ou as habilidades nessa área, talvez seja mais fácil obter um DBA com base em contrato para analisar isso e fornecer recomendações.

Infelizmente, a resolução abrangente requer tempo, conhecimento e experiência do conjunto de dados existente.

    
por 11.10.2011 / 00:24