接續上文,本文聚焦 pt-kill 的**多維度精準匹配參數**,提供可直接落地的生產級命令模板,覆蓋按 User/Host/Command/State/Info/DB 六大維度的殺進程場景。
/usr/bin/pt-kill \ --busy-time 15 \ --victims all \ --interval 1 \ --kill \ --daemonize \ --pid=/tmp/ptkill.pid \ --print \ --log=/home/pt-kill.log
說明: 檢查間隔 1 秒,運行超過 15 秒的匹配連接全部殺掉(--kill 終止線程),後台運行並記錄 PID/日志。
/usr/bin/pt-kill \ --match-user="dbUSER1|dbUSER2" \ [通用基礎參數]
注意: 多用戶用 | 分隔,**嚴格區分大小寫**。
/usr/bin/pt-kill \ --match-host="192.168.10.10|192.168.10.11" \ [通用基礎參數]
對應 --ignore-host 排除特定來源。
# 匹配模式 /usr/bin/pt-kill \ --match-command="Query|Execute" \ [通用基礎參數] # 排除模式(保留 Sleep、Binlog Dump 等) /usr/bin/pt-kill \ --ignore-command="Sleep|Binlog Dump" \ [通用基礎參數]
Command 值必須完全匹配大小寫: Query、Sleep、Binlog Dump、Connect、Delayed insert、Execute、Fetch、Init DB、Kill、Prepare、Processlist、Quit、Reset stmt、Table Dump。
/usr/bin/pt-kill \ --match-state="Locked|Sending data" \ [通用基礎參數]
State 值嚴格匹配: Locked、login、copy to tmp table、Copying to tmp table、Copying to tmp table on disk、Creating tmp table、executing、Reading from net、Sending data、Sorting for order、Sorting result、Table lock、Updating。
/usr/bin/pt-kill \ --match-info="SELECT|DELETE" \ [通用基礎參數]
支援正則,多關鍵字用 |。建議大小寫全覆蓋:select|SELECT|delete|DELETE|update|UPDATE|insert|INSERT。對應 --ignore-info 排除。
/usr/bin/pt-kill \ --match-db="db1|db2" \ [通用基礎參數]
對應 --ignore-db 排除。
| 參數 | 行為 | 適用場景 |
|---|---|---|
--kill | 殺掉連接(線程終止),執行後退出 | 一次性清理、極端情況止血 |
--kill-query | 僅殺掉當前語句,連接保留 | 常駐守護、長查詢治理、減少應用報錯 |
--print | 僅打印匹配連接信息,不執行殺操作 | 新規則驗證、審計預演 |
/etc/systemd/system/pt-kill@.service 模板,實例化多實例監控pt-kill.log,識別高頻被殺 SQL/用戶/來源,反饋開發優化pt-kill 的威力在於**組合拳**:--match-* 多維定位 + --victims/all 批量處理 + --kill-query 溫和止血 + --daemonize 常駐守護。**將上述模板收錄進運維手冊,關鍵時刻複製貼上、秒級生效**。