Como posso acelerar o MySQL no Linux?

1

Às vezes o mysqld vai até 95% da CPU usando top. Isso treme todo o meu servidor para uma parada. Existe alguma maneira de limitar o uso da CPU a um máximo de 25%?

    
por deltanovember 22.02.2011 / 22:59

2 respostas

3

Primeiro, você precisa habilitar o log de consultas lentas para poder detectar a causa raiz do problema.

Em seguida, você precisa criar um perfil para seus aplicativos     então você entende onde os recursos     são gastos.

Finalmente, ajuste seu mysql     exemplo (es) para trabalhar melhor com o seu     hardware e os requisitos do aplicativo.

Na minha experiência, o que mata o mysql é o acesso ao disco. A única maneira de "estrangular" o mysql é fragmentar seus dados adequadamente para que o acesso ao disco seja mantido no mínimo. Se você tiver uma tabela com 100 milhões de linhas, mesmo com a indexação, haverá problemas de associação. Então, compartilhe esses dados se possível. Você também pode usar a replicação para leituras de "balanceamento de carga" em vários hosts.

Existe um grande número de soluções "shoot from the hip" para resolver problemas de desempenho. Sem especificidade da causa raiz, é improvável que algum ajude.

    
por 22.02.2011 / 23:10
1

Randy tem uma resposta muito boa, mas eu gostaria de adicionar um ponto mais genérico.

A CPU que não é usada é desperdiçada. Um servidor adequadamente configurado não será interrompido se um serviço solicitar toda a CPU, pois seu sistema operacional foi criado para lidar com isso. Então, o que você pode fazer é que você pode diminuir a prioridade do processo mysqld (renice +19) para garantir que seu outro processo tenha uma prioridade mais alta e obtenha o tempo de CPU que eles precisam.

Naturalmente, isso não cuida do problema subjacente, nem lidará com a competição de recursos (alta carga de E / S ou Troca pode tornar um servidor impossível de se trabalhar). Mas se é um problema puro da CPU, mudar a prioridade pode ajudar.

    
por 23.02.2011 / 00:00

Tags