zoukankan      html  css  js  c++  java
  • pt-kill MySQL会话杀灭神器

    废话不多说,直接上例子:

    pt-kill --host=127.0.0.1 --user=xxx --password=xxxxxx --port=xxxx --busy-time 10 --match-info="SELECT * FROM|DELETE FROM XXX" --victim all --interval 5 
    --daemonize --pid=/tmp/ptkill.pid --log=/tmp/pt-kill.log --kill --print

    部分选项释义:

    --match-xxx 对应 show processlist 的各个字段:

    +---------+-------------+------------------+---------+------------------+--------+---------------------------------------------------------------+------------------+
    | Id      | User        | Host             | db      | Command          | Time   | State                                                         | Info             |
    +---------+-------------+------------------+---------+------------------+--------+---------------------------------------------------------------+------------------+

    --busy-time 15 匹配已运行超过此时间(秒)的查询。 查询必须处于Command = Query状态。 这与SHOW PROCESSLIST报告的查询的Time值匹配。

    --kill-busy-commands --busy-time只匹配Command = Query的连接,但某些慢SQL Command = Execute,此时可使用 --kill-busy-commands=Query,Execute

    --match-user="nice|dbuser01|dbuser02" 按照用户杀会话

    --match-host="10.10.1.1|10.10.1.2" 按照会话连接的主机杀会话

    --match-db="" 按照db匹配杀会话

    --match-command="Query|Execute" 按照command匹配杀会话,(Command 取值有:Query, Sleep, Binlog Dump,Connect,Delayed insert,Execute
    Fetch,Init DB,Kill,Prepare,Processlist,Quit,Reset stmt,Table Dump)

    --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)

    --match-info="" 仅匹配 Info 列与此Perl正则表达式匹配的查询。进程列表的 Info列显示正在执行的查询,如果没有执行查询,则显示NULL。

    --match-all 匹配所有未被忽略的(--ignore 指定)查询(复制线程除外,除非指定了--replication-threads ),可与 --victim 合用,如:--match-all --victim oldest,只 kill 最老的查询

    --victim 【 oldest | all | all-but-oldest 】

    • oldest kill 执行时间最长的那一条 SQL
    • all kill 所有匹配的 SQL
    • all-but-oldest 除执行时间最长的那条SQL外,其他匹配SQL全部 kill (与 oldest 相反)

    --print 打印匹配的SQL,不执行 kill 操作

    --kill ,kill 连接

    --kill-query 仅 kill query ,不断开连接

    --daemonize 后台运行

    --log ,--daemonize(守护进程)启动时,将所有输出打印到此文件

    --pid 创建一个 pid文件

    --interval ,check and kill 的频率,单位秒

    注意:在匹配杀线程时,内容一定要严格匹配大小写,否则会杀不掉。注意多个匹配之间用 | 分隔,否则会失效。

  • 相关阅读:
    u-boot中网口处理--硬件部分
    移动开发
    多台Mac电脑使用一个apple开发者账号
    AppStore苹果应用支付开发(In App Purchase)翻译
    IOS7.1-7.1.1越狱后无法读取越狱文件的解决办法
    【iOS越狱开发】如何将应用打包成.ipa文件
    Xcode 证书生成、设置、应用
    iOS 证书与签名 解惑详解
    打包iOS应用程序
    什么是KBEngine
  • 原文地址:https://www.cnblogs.com/waynechou/p/pt-kill.html
Copyright © 2011-2022 走看看