!
也想出现在这里? 联系我们
广告位
当前位置:首页>教程分享>服务器教程>pt-kill 常用杀进程参数介绍_MySQL

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 只杀掉连接执行的语句,但是线程不会被终止

给TA打赏
共{{data.count}}人
人已打赏
服务器教程

entOS 5.x系列 官方停止更新支持后yum源失效解决方案

2021-4-17 20:57:05

服务器教程

MySQL数据库InnoDB引擎下服务器断电数据恢复方法

2021-4-17 20:57:09

声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 [email protected] 或点击右侧 私信:吉吉国王 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
OneEase