首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Percona 實用工具 pt-kill 完整使用指南:從安裝到生產環境最佳實踐

     編輯:MySQL 綜合教學

Percona 實用工具 pt-kill 完整使用指南

工具定位

pt-kill 是 Percona Toolkit 核心組件,專治:閒置連線導致 max_connections 耗盡、問題 SQL 導致負載飆高。工作中遇到連線異常第一反應就是它,功能遠超自寫腳本。

常用功能速查

# 每 10 秒殺掉所有 Sleep 連線
pt-kill --defaults-file=/etc/my.cnf --match-command Sleep --kill --victims all --interval 10

# 每 10 秒殺掉運行超過 60 秒的查詢
pt-kill --defaults-file=/etc/my.cnf --busy-time 60 --kill --victims all --interval 10

核心參數分類詳解

運行模式

  • --daemonize:守護進程模式後台運行
  • --interval N:檢查間隔,支援 s/m/h/d 後綴,預設秒

受害者選擇策略 (--victims)

  • oldest (預設):僅殺最久的一筆,防誤殺長期等待非真正慢查詢
  • all:殺掉所有匹配連線
  • all-but-oldest:殺掉除最久外所有匹配連線

執行動作

  • --kill:殺掉連線
  • --kill-query:僅殺查詢,連線存活
  • --print:列印匹配查詢 (建議首次部署先開啟觀察)

查詢匹配條件

  • --busy-time N:查詢執行時間超過 N 秒
  • --idle-time N:閒置時間超過 N 秒 (需配合 --match-command Sleep)

完整參數速查表

參數用途
--busy-time運行時間閾值
--idle-time閒置時間閾值
--victims受害者策略
--interval檢查間隔 (預設 30s)
--print列印被殺連線
--match-command匹配 Command (Query/Sleep/Binlog Dump...)
--match-state匹配 State (Locked/Sending data/Sorting...)
--match-info正則匹配 SQL 文本
--match-db/user/host匹配庫/用戶/主機

常用實戰組合

# 殺閒置連線
pt-kill --match-command Sleep --idle-time 5 --host=H --port=P --interval=1 --print --kill --victims all

# 殺長查詢
pt-kill --match-command Query --busy-time 5 --host=H --port=P --interval=1 --print --kill --victims all

# 殺特定 SQL
pt-kill --match-command Query --busy-time 5 --match-info "BAD_SQL" --host=H --port=P --interval=1 --print --kill --victims all

# 殺 Filesort
pt-kill --match-command Query --match-state "Sorting result" --busy-time 5 --host=H --port=P --interval=1 --print --kill --victims all

# 殺臨時表
pt-kill --match-command Query --match-state "Copying to tmp table" --busy-time 5 --host=H --port=P --interval=1 --print --kill --victims all

官方文檔

https://www.percona.com/doc/percona-toolkit/2.1/pt-kill.html

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved