程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> pt-kill 常用殺進程參數介紹

pt-kill 常用殺進程參數介紹

編輯:關於MYSQL數據庫

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

1. 按user kill
/usr/bin/pt-kill --busy-time 15   --match-user="dbUSER1 | dbUSER2,..." --victim all --interval 1 --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log 
注:測試通過按用戶來殺線程,注意--match-user多個用戶之間用 | 分隔。 


2. 按query來源 host kill
/usr/bin/pt-kill --busy-time 15   --match-host="192.168.10.10 | 192.168.10.11" --victim all --interval 1 --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log
--ignore-host    / --match-host
 
注:測試通過按來源host來殺線程,注意--match-host多個host之間用 | 分隔。 


3. 按command kill
/usr/bin/pt-kill --busy-time 15   --match-command="query | Execute" --victim all --interval 1 --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log
/usr/bin/pt-kill --busy-time 15   --ignore-command="sleep | binlogdump" --victim all --interval 1 --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log

注:測試通過按command來殺掉線程,注意command的內容一定要嚴格匹配大小寫,否則會殺不掉。 注意--match-command多個command之間用 | 分隔,否則會失效。
(command有:Query、Sleep、Binlog Dump、Connect、Delayed insert、Execute、Fetch、Init DB、Kill、Prepare、Processlist、Quit、Reset stmt、Table Dump)


4. 按state kill
/usr/bin/pt-kill --busy-time 15 --match-state="Locked | Sending data" --victim all --interval 1 --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log
注:測試通過按state 來殺掉線程,注意state 的內容一定要嚴格匹配大小寫,否則會殺不掉。注意--match-state多個state之間用 | 分隔,否則會失效。
(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)


5. 按info關鍵字 kill
/usr/bin/pt-kill --busy-time 15 --match-info="SELECT | DELETE" --victim all --interval 1 --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log
注:測試通過按info來殺掉線程,注意info的內容一定要嚴格匹配大小寫,否則會殺不掉。注意--match-info多個info之間用 | 分隔,否則會失效。
--ignore-info    / --match-info
(info可以使用select、update、insert、delete來進行匹配,並可使用"|"進行多項匹配,如"select|SELECT|delete|DELETE|update|UPDATE"


6. 按訪問的dbname kill
/usr/bin/pt-kill --busy-time 15 --match-db="db1 | db2"  --victim all --interval 1 --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log
 --ignore-db  / --match-db
注:測試通過按db來殺掉線程,注意db的內容一定要嚴格匹配大小寫,否則會殺不掉。注意--match-db多個db之間用 | 分隔,否則會失效。


另: Action:
--kill                      殺掉連接並且退出
--kill-query           只殺掉連接執行的語句,但是線程不會被終止

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved