pt-stalk est conçu dans ce but précis. Il échantillonne la liste des processus toutes les secondes (ou quelle que soit l'heure que vous spécifiez), puis lorsqu'un seuil est atteint (Threads_running est la valeur par défaut et c'est ce que vous voulez dans ce cas), collecte tout un tas de données, y compris l'activité du disque, tcpdumps, plusieurs des exemples de la liste des processus, des variables d'état du serveur, de l'état mutex/innodb et bien d'autres.
Voici comment démarrer :
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
La commande ci-dessus échantillonnera Threads_running (--threshold
; réglez ceci sur votre valeur pour n ), chaque seconde (par défaut --interval
) et lance une collecte de données si Threads_running est supérieur à 50 pour 1 échantillon consécutif (--cycles
). 3 jours (--retention-time
) d'échantillons seront conservés et la collecte ne se déclenchera pas si moins de 20 % de votre disque est libre (--disk-pct-free
). A chaque collecte, un tcpdump au format pcap sera exécuté (--collect-tcpdump
) qui peuvent être analysés avec des outils tcpdump conventionnels ou un certain nombre d'autres outils Percona Toolkit, y compris pt-query-digest
et pt-tcp-model
. Il y aura 5 minutes de repos entre les échantillons (par défaut, --sleep
) afin d'éviter de DoS'ing vous-même. Le processus sera démonisé (--daemonize
). Les paramètres après --
sera transmis à toutes les commandes mysql/mysqladmin, c'est donc un bon endroit pour définir des choses comme --defaults-file
où vous pouvez stocker vos identifiants de connexion à l'abri des regards indiscrets.