針對不同治理需求,pt-kill 提供豐富的匹配維度。本文整理六大核心匹配模式的實戰參數範本,均以守護進程模式運行、間隔 1 秒、記錄日誌。
/usr/bin/pt-kill --busy-time 15 \ --match-user="dbUSER1|dbUSER2" --victim all --interval 1 \ --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log
注意: 多用戶用 | 分隔,測試驗證有效。
/usr/bin/pt-kill --busy-time 15 \ --match-host="192.168.10.10|192.168.10.11" --victim all --interval 1 \ --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log
同理,多 IP 用 | 分隔。
# 匹配模式:殺掉 Query 和 Execute /usr/bin/pt-kill --busy-time 15 \ --match-command="Query|Execute" --victim all --interval 1 \ --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log # 排除模式:保留 Sleep 和 Binlog Dump /usr/bin/pt-kill --busy-time 15 \ --ignore-command="Sleep|Binlog Dump" --victim all --interval 1 \ --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log
關鍵: Command 名稱嚴格區分大小寫,多值用 | 分隔。
/usr/bin/pt-kill --busy-time 15 \ --match-state="Locked|Sending data" --victim all --interval 1 \ --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log
State 同樣嚴格區分大小寫,常見值:Locked、login、Copying to tmp table、Creating tmp table、executing、Reading from net、Sending data、Sorting for order、Sorting result、Table lock、Updating。
/usr/bin/pt-kill --busy-time 15 \ --match-info="SELECT|DELETE" --victim all --interval 1 \ --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log
Info 內容嚴格區分大小寫,可用 | 多重匹配:select|SELECT|delete|DELETE|update|UPDATE。
/usr/bin/pt-kill --busy-time 15 \ --match-db="db1|db2" --victim all --interval 1 \ --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log
Database 名稱嚴格區分大小寫,多值用 | 分隔。
--kill:殺掉連線並退出--kill-query:僅殺掉當前查詢,連線保留 (較溫和)--kill-query 而非 --kill,減少連線風暴--daemonize + --pid 做進程管理,避免重複啟動logrotate 防止磁碟寫滿--match-user 排除核心帳號,或用 --ignore-user