Resposta geral do wiki do guia do servidor :
O MySQL Tuner é uma ferramenta útil que se conectará a uma instância MySQL em execução e oferecerá sugestões de como ela pode ser melhor configurada para sua carga de trabalho. Quanto mais tempo o servidor estiver rodando, melhor o conselho que o mysqltuner pode fornecer. Em um ambiente de produção, considere aguardar pelo menos 24 horas antes de executar a ferramenta. Você pode obter o mysqltuner dos repositórios do Ubuntu:
sudo apt-get install mysqltuner
Então, uma vez instalado, execute-o:
mysqltuner
e aguarde seu relatório final. A seção superior fornece informações gerais sobre o servidor de banco de dados e a seção inferior fornece sugestões de ajuste para alterar em seu arquivo my.cnf. A maioria destes pode ser alterada ao vivo no servidor sem reiniciar, olhe através da documentação oficial do MySQL (link na seção Recursos) para as variáveis relevantes mudarem na produção. O seguinte é parte de um relatório de exemplo de um banco de dados de produção que mostra que pode haver algum benefício em aumentar a quantidade de cache de consultas:
-------- Recommendations ----------------------------------------------------- General recommendations: Run OPTIMIZE TABLE to defragment tables for better performance Increase table_cache gradually to avoid file descriptor limits Variables to adjust: key_buffer_size (> 1.4G) query_cache_size (> 32M) table_cache (> 64) innodb_buffer_pool_size (>= 22G)
Um comentário final sobre o ajuste de bancos de dados: Embora possamos dizer amplamente que certas configurações são as melhores, o desempenho pode variar de aplicativo para aplicativo. Por exemplo, o que funciona melhor para o Wordpress pode não ser o melhor para o Drupal, Joomla ou aplicativos proprietários. O desempenho depende dos tipos de consultas, do uso de índices, da eficiência do design do banco de dados e assim por diante. Talvez seja útil passar algum tempo pesquisando dicas de ajuste de banco de dados com base nos aplicativos para os quais você está usando. Depois que você passar de um certo ponto, qualquer ajuste feito resultará apenas em pequenas melhorias, e será melhor melhorar o aplicativo ou ampliar o ambiente de banco de dados usando hardware mais potente ou adicionando servidores escravos.
- Assista à seção de métricas de desempenho do relatório mysqltuner. Mantenha o máximo de memória possível abaixo de 50%.
-
tmp_table_size
,max_heap_table_size variable
: mantenha esses valores iguais e altos. -
join_buffer_size
, aumenta em pequenas quantidades; será multiplicado pormax_connections
. - %código%. Faça isso alto.