Percona-Toolkit 之 pt-kill 用法

haoge0205發表於2020-02-25

生產環境中我們時常遇到這樣的情況,資料庫效能惡劣,需要馬上殺掉部分會話,不然資料庫就夯死。我們可以先找show processlist的輸出來殺會話,但是比較麻煩。pt-kill為我們解決了殺會話問題。

1、每10秒檢查一次,發現有 Query 的程式就給幹掉
# 只列印每10秒檢查一次:( --interval 10)
pt-kill --host=192.168.5.7 --port=3306 --user=root --password=hankyoon --match-command="Query" --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/1.log

# 執行殺操作並列印日誌:
pt-kill --host=192.168.5.7 --port=3306 --user=root --password=hankyoon --match-command="Query" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/kill.log

2、查殺select大於30s的會話
# 只列印select大於30s:
pt-kill --host=192.168.5.7 --port=3306 --user=root --password=hankyoon --match-info "select|SELECT" --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log

# 執行殺操作select大於30s:
pt-kill --host=192.168.5.7 --port=3306 --user=root --password=hankyoon --match-info "select|SELECT" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log

# 執行殺操作針對 yoon庫select大於30s:
pt-kill --host=192.168.5.7 --port=3306 --user=root --password=hankyoon --match-db='yoon' --match-info "select|SELECT" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_yoon_kill.log

3、查殺某IP來源的會話
# 只列印某IP來源的會話
pt-kill --host=192.168.5.7 --port=3306 --user=root --password=hankyoon --match-host "192.168.5.7" --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log

# 執行殺操作某IP來源的會話
pt-kill --host=192.168.5.7 --port=3306 --user=root --password=hankyoon --match-host "192.168.5.7" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log

4、查殺訪問某使用者的會話
# 只列印查殺訪問某使用者的會話
pt-kill --host=192.168.5.7 --port=3306 --user=root --password=hankyoon --match-user "yoon" --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log

# 執行殺操作-查殺訪問某使用者的會話
pt-kill --host=192.168.5.7 --port=3306 --user=root --password=hankyoon --match-user "yoon" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log

5、殺掉正在進行filesort的sql
# 只列印-殺掉正在進行filesort的sql
pt-kill --host=192.168.5.7 --port=3306 --user=root --password=hankyoon --match-db='db' --match-command Query --match-state "Sorting result" --run-time 1 --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log

# 執行殺操作-殺掉正在進行filesort的sql
pt-kill --host=192.168.5.7 --port=3306 --user=root --password=hankyoon --match-db='db' --match-command Query --match-state "Sorting result" --run-time 1 --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log

# 只列印
pt-kill --host=192.168.5.7 --port=3306 --user=root --password=hankyoon --match-db='db' --match-command Query --match-state "Creating sort index" --run-time 1 --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log

# 執行殺操作
pt-kill --host=192.168.5.7 --port=3306 --user=root --password=hankyoon --match-db='db' --match-command Query --match-state "Creating sort index" --run-time 1 --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log


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

相關文章