mysql não está usando vários cpus

mysql não está usando vários cpus

Nosso servidor MySQL tem usado muita CPU ultimamente (atingiu 100% várias vezes e permanece assim por um tempo) e notei que a carga da CPU está toda em um núcleo de uma CPU. Eu esperava espalhar isso para todos os quatro no meu servidor.

Tenho ajustado as configurações do MySQL para usar mais memória RAM e menos CPU, mas ocasionalmente ainda atinge um uso muito alto da CPU.

Parece que tudo sobre o tópico se refere a thread_concurrency (que eu li é uma configuração apenas do Solaris). O que posso fazer no Linux?

Obrigado.

Responder1

Você está certo, thread_concurrency é apenas para Solaris e está obsoleto no MySQL 5.6 em diante. Eu não acho que você possa usar vários núcleos/cpus com MyISAM. Para utilizar totalmente o hardware, use InnoDB.

Essepode ajudá-lo a entender melhor as coisas.

Responder2

O valor correto para esta variável depende do ambiente e da carga de trabalho. Você precisará tentar vários valores diferentes para determinar qual valor funciona para seus aplicativos. Um valor recomendado é 2 vezes o número de CPUs mais o número de discos.

O intervalo desta variável é de 0 a 1000. Um valor de 20 ou superior é interpretado como simultaneidade infinita antes do MySQL 5.0.19. A partir da versão 5.0.19, você pode desabilitar a verificação de simultaneidade de thread definindo o valor como 0. Desabilitar a verificação de simultaneidade de thread permite que o InnoDB crie quantos threads forem necessários.

http://dev.mysql.com/doc/refman/5.0/en/innodb-parameters.html#sysvar_innodb_thread_concurrency

Responder3

Para simplificar - cada consulta executada no MySQL usa apenas 1 núcleo de CPU, independentemente de quão multi-core seja o mecanismo InnoDB.

Todas as otimizações multi-core dentro do MySQL ajudam quando você tem muitas consultas diferentes rodando ao mesmo tempo e exigindo CPU e dados, mas se você tiver alguma consulta grande que leva minutos/horas para ser concluída, ela sempre usará apenas 1 núcleo da CPU. (E se você precisar ter essas dúvidas, deverá comprar servidores com maior velocidade de CPU e menor número de núcleos.)

informação relacionada