使用pt-kill根據一定的規則來kill連線的方法

flynike發表於2021-09-09

pt-kill 是一個優秀的kill MySQL連線的一個工具,是percona toolkit的一部分,在因為空閒連線較多導致超過最大連線數、某個有問題的sql導致mysql負載很高時,都需要將一些連線kill掉,這個工具主要就是這個用途。

引數

–busy-time

執行時間

–idle-time

空閒時間

–victims

所有匹配的連線,對應有最久的連線

–interval

間隔時間,預設30s,有點長,可以根據實際情況來調節

–print

列印出來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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2618/viewspace-2811075/,如需轉載,請註明出處,否則將追究法律責任。

相關文章