Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como posso registrar show processlist quando há mais de n consultas?


pt-stalk é projetado para este propósito exato. Ele mostra a lista de processos a cada segundo (ou a qualquer hora que você especificar), então quando um limite é atingido (Threads_running é o padrão e é o que você deseja neste caso), coleta um monte de dados, incluindo atividade de disco, tcpdumps, múltiplos amostras da lista de processos, variáveis ​​de status do servidor, status mutex/innodb e muito mais.

Veja como iniciá-lo:
pt-stalk --daemonize --dest /var/lib/pt-stalk --collect-tcpdump --threshold 50 --cycles 1 --disk-pct-free 20 --retention-time 3 -- --defaults-file=/etc/percona-toolkit/pt-stalk_my.cnf

O comando acima irá amostrar Threads_running (--threshold; defina isso como seu valor para n ), a cada segundo (padrão de --interval ) e acione uma coleta de dados se Threads_running for maior que 50 para 1 amostra consecutiva (--cycles ). 3 dias (--retention-time ) das amostras serão mantidas e a coleta não será acionada se menos de 20% do seu disco estiver livre (--disk-pct-free ). Em cada coleção, um formato pcap tcpdump será executado (--collect-tcpdump ) que pode ser analisado com ferramentas convencionais de tcpdump ou várias outras ferramentas do Percona Toolkit, incluindo pt-query-digest e pt-tcp-model . Haverá um descanso de 5 minutos entre as amostras (padrão de --sleep ) para evitar que você mesmo faça DoS. O processo será daemonizado (--daemonize ). Os parâmetros após -- será passado para todos os comandos mysql/mysqladmin, então é um bom lugar para definir coisas como --defaults-file onde você pode armazenar suas credenciais de login longe de olhares indiscretos.