| 參數 | 作用 | 關鍵值 |
|---|---|---|
--busy-time | 查詢執行超時閾值(秒) | 如 5, 60 |
--idle-time | Sleep 空閒超時閾值(秒) | 需配合 --match-command Sleep |
--victims | 匹配多個時策略 | all全殺 oldest最久 all-but-oldest留最久 |
--interval | 檢查間隔(默認 30s) | 建議 5-10s |
--print | 打印被殺連接 | 審計必開 |
--match-command | 匹配 Command | Query/Sleep/Binlog Dump/Execute/... |
--match-state | 匹配 State | Locked/Sending data/Sorting result/... |
--match-info | 正則匹配 SQL 文本 | SELECT|UPDATE|大表名/ |
--match-user/host/db | 匹配用戶/來源/庫 | 見名知意 |
pt-kill --match-command Sleep --idle-time 300 --victims all --interval 60 --kill --print --daemonize
pt-kill --match-command Query --busy-time 60 --victims all --interval 30 --kill-query --print --daemonize
pt-kill --match-command Query --busy-time 30 --match-info "SELECT \* FROM huge_table" --victims all --interval 10 --kill-query --print
pt-kill --match-command Query --match-state "Sorting result" --busy-time 20 --victims all --interval 10 --kill-query --print
pt-kill --match-command Query --match-state "Copying to tmp table" --busy-time 20 --victims all --interval 10 --kill-query --print
# 僅殺「報表用戶」在「報表庫」執行超過 60 秒的「查詢」 pt-kill --match-user "report_user" --match-db "report_db" --match-command Query --busy-time 60 --victims all --interval 30 --kill-query --print --daemonize
--config /etc/pt-kill.confpt-kill@3306.service 模板logrotate 管理 pt-kill.log掌握這套規則引擎,讓異常連接「有規則可匹配、有策略可執行、有日誌可追溯、有告警可感知」。