Inspecionando estabilidade do MYSQL com PT-STALK

_A

Primeiramente gostaria de pedir desculpas pelos posts aleatórios. Atualmente trabalho em uma empresa híbrida em se tratando de tecnologias o que acaba exigindo estarmos sempre aprendendo e buscando algo novo além de revisando “antigos” conceitos.

E seguindo nessa linha o blog vos traz artigos de banco de dados (OLPT, OLAP, NoSQL), blockchain, machine learning, AI, programação, mercado entre outros assuntos sendo um blog também híbrido.

No mais, espero que no mínimo se divirtam com as publicações e que possa a alguém um dia ajudar com as aplicações/soluções aqui postados.

E sem mais delongas, hoje trago o PT-STALK da PERCONA para inspecionar micro-paradas do MySQL.

Acontece do MySQL ser/estar menos estável do que pensamos. Neste artigo vamos detectar e desativar paradas do MySQL que duram de 5 a 10 segundos ou mais.

Essas paradas do MySQL costumam ser raras, intermitentes e softwares de monitoramento podem não pega-los, o que as torna extremamente difíceis de identificar e que podem causar atrasos intermitentes no aplicativo.
Mesmo se você receber um alerta, ele não ajudará a encontrar uma causa raiz. Mesmo se você não vir nenhum problema, isso não significa que não há problemas.
Nós usaremos o pt-stalk para detectar e diagnosticar esses problemas.  Pt-stalk faz parte do kit de ferramentas Percona Toolkit onde podemos encontrar no link a baixo ou instalando seguindo os passos que citarei no artigo.

 

          – Monitoramento e registro de “soluções” no MySQL.
           – Registro de dados de diagnóstico para análise.
           – Envio de e-mail sobre o problema.

 

pt-stalk é como se fosse uma trigger, onde você define um gatilho de partida, quando o evento acontecer ele registra este evento em um arquivo de log.
Normalmente bons gatilhos são o número de conexões com servidor e número de consultas em execução que estão disponíveis em SHOW GLOBAL STATUS representados como:

 

                > Conexões no servidor= Threads_connected
                >Querys execução  = Threads_running

 

Podemos definir  gatilhos com o as opções --function--variable--threshold, e --cycles

Utilizaremos a instalação em um sistema operacional Debian v10. Motivo? Nenhum, não sou apegado a sistemas operacionais, espero que você também não, mas, no link a baixo você encontra o instalador para o SO de sua preferência (menos Windows é claro):
Percona Toolkit

Documentação completa do Percona Toolkit: Documents

Interessante atualizar o repositório antes:

wget "https://repo.percona.com/apt/percona-  release_latest.generic_all.deb"
sudo dpkg -i percona-release_latest.generic_all.deb
  • Para Debian ou Ubuntu:

    sudo apt-get install percona-toolkit
    
  • Para RHEL ou CentOS:

    sudo yum install percona-toolkit
    

Iniciando o pt-stalk em primeiro plano:

# pt-stalk

Você pode rodar como segundo plano:

pt-stalk –daemonize

Gatilhos:

MySQL Threads_running >= 25

Uma forma sugerido para encontrar um número aproximado para seu ambiente é rodar o comando a baixo em seu SO e definir de 30-50% acima do número que será apresentado:

mysqladmin etx -i1 | grep Threads_running

Threshold configurado para quando houver mais de 10 consultas em execução ao mesmo tempo. (padrão é 25):

pt-stalk daemonize  –thresold = 10

Número de ciclos antes do acionamento dos coletores:

pt-stalk –cycles = 5

Intervalo entre verificações. (padrão 1s):

pt-stalk –interval = .1

Usando a variável de status:

pt-stalk –variable = Threads_connected

Tempo de retenção dos arquivos. (padrão,  30 dias):

–retention-time

Limite de espaço em disco da retenção:

5% –disk-pct-free

Caminho de destino. (padrão, /var/lib/pt-stalk):

–dest

Nome de saída do arquivo. (padrão,  yyyy_mm_dd_hh_mm_ss-tool)

Notificação por e-mail:

–notify-by-email

VISUALIZAÇÃO:

pt-sift irá ajudar a filtrar dados.

e o

grep Threads_running TIMESTAMP-mysqladmin

#grep Threads_running 2016_11_05_22_24_45-mysqladmin
| Threads_running    | 84     |
| Threads_running    | 112    |
| Threads_running    | 125    |
| Threads_running    | 130    |
| Threads_running    | 138    |
| Threads_running    | 127    |
| Threads_running    | 143    |
| Threads_running    | 171    |
| Threads_running    | 45     |
| Threads_running    | 9      |
| Threads_running    | 4      |
| Threads_running    | 6     |

e/ou para abrirmos os arquivos utilizamos o pt-diskstats que falaremos mais a frente.

Tem muitas opções legais para brincar, recomendo uma lida na documentação oficial do pt-stalk que você encontra no início do post.

abraços,

até a próxima.

 

Marcado com: , , ,
Publicado em MySQL

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Arquivos
Follow SQL DATA BLOG on WordPress.com
%d blogueiros gostam disto: