Calculando o gcache MyQL PXC

0

Eu estava tentando descobrir como calcular o gcache correto para o meu servidor e encontrei o seguinte post discutindo como fazer isso:

https://www.percona.com/blog/2014/09/08/calculate-correct-size-percona-xtradb-clusters-gcache/

No post, a conversa sobre como fazer o seguinte para obter os valores necessários para o cálculo:

show global status like 'wsrep_received_bytes';
show global status like 'wsrep_replicated_bytes';
select sleep(60);
show global status like 'wsrep_received_bytes';
show global status like 'wsrep_replicated_bytes';

A minha pergunta é, rodando o select sleep (60) no bloco de produção todas as leituras no MySQL (mantendo o thread do mysqld ocupado)? Como posso calcular o melhor valor de gcache em produção?

    
por The Georgia 03.11.2017 / 10:42

1 resposta

0

O MySQL é multi-threaded. O sleep (60) irá comer uma conexão (e possivelmente um thread), mas não bloqueará todo o servidor. O número máximo de conexões e o número de encadeamentos em execução simultânea são definidos em my.cnf . (Em um ambiente de produção, você também pode ter configurações ProxySQL, etc.).

Se você estiver preocupado em fazer uma conexão, a maneira mais fácil de evitá-lo é desconectar, dormir e se reconectar. Por exemplo, com casca:

#!/bin/sh
mysql -e "show global status like 'wsrep_received_bytes'; show global status like 'wsrep_replicated_bytes';"
sleep 60
mysql -e "show global status like 'wsrep_received_bytes'; show global status like 'wsrep_replicated_bytes';"

Semelhante pode ser feito na maioria das linguagens de programação / script.

Uma palavra de aviso: Parece que você precisa aprender muito mais sobre o MySQL antes de tentar ajustá-lo. Especialmente em um ambiente de produção. E, nesse caso, você deve ter um ambiente de teste (ou até mesmo de desenvolvimento) onde possa experimentar coisas como sleep e descobrir o que ele faz.

    
por 03.11.2017 / 10:58

Tags