pt-stalk предназначен именно для этой цели.Он производит выборку списка процессов каждую секунду (или в любое другое время, которое вы укажете), а затем, когда достигается пороговое значение (Threads_running является значением по умолчанию и в данном случае является тем, что вам нужно), собирает целый набор данных, включая активность диска, tcpdumps, множественныепримеры списка процессов, переменных состояния сервера, состояния мьютекса / innodb и нескольких других.
Вот как это запустить:
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
Приведенная выше команда будет пробовать Threads_running (--threshold
; установите это значение на n ) каждую секунду (по умолчанию --interval
) и запустите сбор данных, если Threads_running больше 50 для 1 последовательного образца (--cycles
).3 дня (--retention-time
) образцов будут храниться, и их сбор не будет производиться, если на диске будет свободно менее 20% (--disk-pct-free
).В каждой коллекции будет выполняться tcpdump в формате pcap (--collect-tcpdump
), который можно анализировать с помощью обычных инструментов tcpdump или ряда других инструментов Percona Toolkit, включая pt-query-digest и пт-ТСР-модель .Между выборками будет 5-минутный отдых (по умолчанию --sleep
), чтобы предотвратить DoS'ы самостоятельно.Процесс будет демонизирован (--daemonize
).Параметры после --
будут переданы всем командам mysql / mysqladmin, поэтому это хорошее место для установки таких вещей, как --defaults-file
, где вы можете хранить свои учетные данные вдали от посторонних глаз.