pt-stalk är utformad för just detta ändamål. Den samplar processlistan varje sekund (eller vilken tid du än anger), sedan när en tröskel nås (Threads_running är standard och är vad du vill ha i det här fallet), samlar den in en hel massa data, inklusive diskaktivitet, tcpdumps, flera exempel på processlistan, serverstatusvariabler, mutex/innodb-status och en massa mer.
Så här startar du det:
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
Kommandot ovan kommer att ta ett exempel på Threads_running (--threshold
; ställ in detta till ditt värde för n ), varje sekund (standard för --interval
) och aktivera en datainsamling om Threads_running är större än 50 för 1 på varandra följande prov (--cycles
). 3 dagar (--retention-time
) av prover kommer att behållas och collect kommer inte att aktiveras om mindre än 20 % av din disk är ledig (--disk-pct-free
). Vid varje samling kommer ett pcap-format tcpdump att köras (--collect-tcpdump
) som kan analyseras med antingen konventionella tcpdump-verktyg eller ett antal andra Percona Toolkit-verktyg, inklusive pt-query-digest
och pt-tcp-model
. Det kommer att vara 5 minuters vila mellan proverna (standard för --sleep
). ) för att förhindra att du gör dig själv. Processen kommer att demoniseras (--daemonize
). Parametrarna efter --
kommer att skickas till alla mysql/mysqladmin-kommandon, så det är ett bra ställe att ställa in saker som --defaults-file
där du kan lagra dina inloggningsuppgifter borta från nyfikna ögon.