时间:2021-05-23
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 只杀掉连接执行的语句,但是线程不会被终止
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
pt-kill是一个优秀的killMySQL连接的一个工具,是perconatoolkit的一部分,在因为空闲连接较多导致超过最大连接数、某个有问题的sql导致
pt-kill是一个优秀的killMySQL连接的一个工具,是perconatoolkit的一部分,在因为空闲连接较多导致超过最大连接数、某个有问题的sql导致
pt-kill是一个非常简单的杀mysql线程和查询的工具。主要是为了防止一些长的查询长时间占用系统资源,而对线上业务造成影响的情况。主要作用:从showpro
首先使用ps-ef命令确定要杀死进程的PID,然后输入以下命令:#kill-pid注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放
pthread_kill:pthread_kill与kill有区别,是向线程发送signal。,大部分signal的默认动作是终止进程的运行,所以,我们才要用s