工具下载
[root@localhost1 bin]# wget percona.com/get/percona-toolkit.tar.gz
[root@localhost1 bin]# yum install perl-DBI
[root@localhost1 bin]# yum install perl-DBD-MySQL
[root@localhost1 bin]# ./pt-kill --help
1、每10秒检查一次,发现有 Query 的进程就给干掉
只打印-每10秒检查一次,发现有 Query 的进程就给干掉
pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-command="Query" --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/1.log
执行杀操作
pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-command="Query" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/kill.log
2、查杀select大于30s的会话
只打印-查杀select大于30s的会话
pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-info "select|SELECT" --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log
执行杀操作-查杀select大于30s的会话
pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-info "select|SELECT" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log
3、查杀某IP来源的会话
只打印-查杀某IP来源的会话
pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-host "192.168.65.129" --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log
执行杀操作-查杀某IP来源的会话
pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-host "192.168.65.129" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log
4、查杀访问某用户的会话
只打印-查杀访问某用户的会话
pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-user "u2" --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log
执行杀操作-查杀访问某用户的会话
pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-user "u2" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log
5、杀掉正在进行filesort的sql
只打印-杀掉正在进行filesort的sql
pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --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=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --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=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --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=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --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
常用用法:
pt-kill --defaults-file xx --match-command Sleep --kill --victims all --interval 10 每隔10s 杀掉处于sleep状态的连接数;
pt-kill --defaults-file xx --busy-time 60 --kill --victims all --interval 10 每隔10s 杀掉处初步runnning状态超过60s的连接数;
pt-kill –match-command Sleep –idle-time 5 –host –port –interval –print –kill –victims all 杀掉空闲链接
pt-kill –match-command Query –busy-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 –match-info 杀掉匹配某个规则的正在运行的sql
pt-kill –match-command Query –match-state “Sorting result” busy-time 5 –host –port –interval –print –kill –victims all 杀掉正在进行filesort的sql
pt-kill –match-command Query –match-state “Copying to tmp table” busy-time 5 –host –port –interval –print –kill –victims all 杀掉正在Copying to tmp table的sql
运行一次 超过5秒钟的数据
./pt-kill --host=127.0.0.1 --port=3306 --user=root --password=11111! --match-command Query --match-info 'SELECT|select' --busy-time 5 --print --log=/tmp/pt_select.log --run-time 1./pt-kill --host=127.0.0.1 --port=3306 --user=root --password='123456' --match-command Query --match-info 'SELECT|select' --busy-time 5 --print --run-time 1./pt-kill --host=127.0.0.1 --port=3306 --user=root --password=111111! --match-command Query --match-info 'SELECT|select' --busy-time 5 --print --log=/tmp/pt_select.log --run-time 1
[root@localhost1 bin]# ./pt-kill --log-dsn h=127.0.0.1,u=root,p='121212121!11',P=3306,D=db2,t=kill_long_query --create-log-table --host=127.0.0.1 --port=3306 --user=root --password=1212' --match-command Query --match-info 'SELECT|select' --busy-time 5 --kill --run-time 5
附录 PT工具大全