Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

EC2 Amazon Linux AMI MySQL CPU @ 62% quando ocioso?


A única coisa que consigo pensar é inspecionar o que o mysqld está realmente fazendo usando strace, como usuário root:
 strace -p 2959

Normalmente, o strace deve bloquear imediatamente e mostrar uma chamada para select(), porque o mysqld deve estar esperando por conexões.

A chamada deve ser algo como:
 select(SOCKETNO, [OTHER_FDs], NULL, NULL, NULL)

especialmente importante é o quarto parâmetro, que é um timeval de tempo limite. Se for NULL, significa que o mysqld irá dormir até que alguém se conecte. Se não for NULL, significa que o mysqld aguardará o tempo especificado e então fará algum trabalho de manutenção. Um timeval muito pequeno pode explicar o consumo de CPU.

Eu acredito que o MySQL sempre emprega um tempo limite NULL (infinito). Faz sentido e é assim que os mysqlds que consigo acessar agora estão se comportando.

No entanto, pode haver alguns problemas de manipulação de conexão que impedem o select de dormir novamente. Verifique se este comportamento aparece assim que o mysqld é iniciado ou depois que alguém se conecta.