segunda-feira, 2 de setembro de 2013

MySQL Otimização Dica - thread_cache_size

Original post: http://anothermysqldba.blogspot.com/2013/09/mysql-optimization-tip-threadcachesize.html

 Recentemente eu encontrei um banco de dados MySQL, que facilmente foi executado com 300 a 600 linhas na processlist. As ligações de Max foi criado facilmente mais de duas vezes esse valor também. Este foi um set up que eu só não concordo com ele. Fui chamado porque ele também provou não estar funcionando muito bem. Então, aqui estão alguns dos meus pensamentos sobre o processo eu descobri.

Na minha opinião a maioria dos bancos de dados MySQL em uso não vai precisar de conexões max ou 1500 ou mais. Quanto mais conexões você permitir maior a sobrecarga trazer para o seu servidor. Use suas conexões de forma eficiente.
Em segundo lugar, compreender a% de Threads_created contra as conexões usadas. Você pode considerar isso, os tópicos criados taxa de acerto. BTW .. Isso não é informação nova, esta é uma informação que tem sido entendido na comunidade por algum tempo. Não tenho a pretensão de apresentar este em qualquer outra forma de tentar ajudar os outros. Então, faça o seguinte para compreender o seu atual%
mostram o status como "Threads_created ';
set @ Threads_created = <resultado de consulta acima>;
mostram o status como 'Conexões';
set @ Connections = <resultado de consulta acima>;
selecionar 100 - ((@ Threads_create / @ Connections) * 100) como "Threads_created% das conexões" \ G



Portanto, se seu executar o processo acima do que é o seu percentual? Você quer que isso seja o mais próximo possível de 100. Assim, por exemplo, o servidor de I recentemente encontrado tinha uma% abaixo de 10%. Assim como você corrigir isso e levantar a%?


A variável thread_cache_size tem um padrão de 0. Se você começar a notar o seu processo de crescimento e mas as consultas não estão bloqueadas por impasses e etc, então você deve verificar o seu "Threads_created% das conexões" como mencionado acima. É provável que o seu% será baixo. Você pode aumentar a% e melhorar drasticamente o desempenho do seu banco de dados, encontrando o ponto ideal que se encaixam no seu ambiente de servidor. O thread_cache_size pode ser alterada em um ambiente vivo. Então, isso permite que você defina a variável em seguida, monitorar o valor do status de "Threads_created" (veja acima para obter valor). Se isso continua a incrementar em valor, em seguida, continuar a aumentar a thread_cache_size . Normalmente preferem I para aumentar o valor de 25 por vez para alguns mova para 500 de cada vez. Costumo marcar a opção "Threads_created% das conexões" e "Threads_created. Uma vez que você chegar perto do ponto doce você vai notar a% de ganhar eo processlist começar a cair em linhas. Normalmente mais um ajuste do thread_cache_size vai chegar no ponto ideal.

Cada servidor de ambiente e é diferente.
Alguns servidores podem ser de 98% com uma thread_cache_size de 50, enquanto outros têm um 98% com o thread_cache_size definido para 15000. O máximo é 16384.

Então, se nada mais ... descobrir qual o seu percentual é primeiro e depois olhar para fazer ajustes.