pt-kill 是一個優秀的kill MySQL連接的一個工具,是percona toolkit的一部分,在因為空閒連接較多導致超過最大連接數、某個有問題的sql導致mysql負載很高時,都需要將一些連接kill掉,這個工具主要就是這個用途。
參數
–busy-time
運行時間
–idle-time
空閒時間
–victims
所有匹配的連接,對應有最久的連接
–interval
間隔時間,默認30s,有點長,可以根據實際情況來調節
打印出來kill掉的連接
–match-command
匹配當前連接的命令
Query
Sleep
Binlog Dump
Connect
Delayed insert
Execute
Fetch
Init DB
Kill
Prepare
Processlist
Quit
Reset stmt
Table Dump
–match-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
–match-info
使用正則表達式匹配符合的sql
–match-db –match-user –match-host
見名知意
常用用法
殺掉空閒鏈接
pt-kill –match-command Sleep –idle-time 5 –host –port –interval –print –kill –victims all
殺掉運行時間超過5s的鏈接
pt-kill –match-command Query –busy-time 5 –host –port –interval –print –kill –victims all
殺掉匹配某個規則的正在運行的sql
pt-kill –match-command Query –busy-time 5 –host –port –interval –print –kill –victims all –match-info
殺掉正在進行filesort的sql
pt-kill –match-command Query –match-state “Sorting result” busy-time 5 –host –port –interval –print –kill –victims all
殺掉正在Copying to tmp table的sql
pt-kill –match-command Query –match-state “Copying to tmp table” busy-time 5 –host –port –interval –print –kill –victims all