主要用途:pt-kill是用来kill MySQL连接的一个工具,在MySQL中因为空闲连接较多导致超过最大连接数,或某个有问题的sql导致mysql负载很高时,需要将其KILL掉来保证服务器正常运行。
 
从show processlist 中获取满足条件的连接或者从包含show processlist的文件中读取满足条件的连接并打印或者杀掉或者执行其他操作。
这个工具在工作中实用性很高,当服务器连接出现异常后第一想到的就是pt-kill,我们这里主要用来防止某些select操作时间过长,从而影响其他线上SQL。
 
范例:
pt-kill --log-dsn D=test1,t=pk_log --create-log-table --host=host2 --user=root --password=123--port=3306 --busy-time=10 --print --kill-query --match-info "SELECT|select" --victims all
 
该使用范例的作用:
如果不存在test1.pk_log表,则创建该表,然后将所有pt-kill的操作记录到该表中。对所有查询时间超过10秒的SELECT语句进行print显示出来,同时会kill该query。
pt-kill 默认检查间隔为5秒。
 
参数:
--log-dsn D=testdb,t=kill_log --create-log-table 是创建testdb.kill_log表,之后将pt-kill操作的日志记录在表中。
--busy-time=10 执行时间超过10秒的。
--print --kill-query 动作是进行print和kill query,除此之外的动作还有kill连接:--kill
--match-info 'SELECT|select' 只匹配SELECT 语句。
 
重要参数:
--daemonize  放在后台以守护进程的形式运行;
--interval  多久运行一次,单位可以是s,m,h,d等,默认是s。默认30s,有点长,可以根据实际情况来调节
--victims 默认是oldest,只杀最古老的查询。这是防止被查杀是不是真的长时间运行的查询,他们只是长期等待。这种匹配按时间查询,杀死一个时间最高值。
    all 杀掉所有满足的线程
     all-but-oldest 杀死所有,但最长的保留不杀。
--kill 杀掉连接并且退出
--kill-query 只杀掉连接执行的语句,但是线程不会被终止
--print 打印出来kill掉的连接
--busy-time 批次查询已运行的时间超过这个时间的线程;
--idle-time 杀掉sleep 了多少时间的连接线程,必须在--match-command sleep时才有效
–busy-time 批次查询已运行的时间超过这个时间的线程;
–idle-time 杀掉sleep了多少时间的连接线程,必须在--match-command sleep时才有效
–match-command 匹配当前连接的命令
 
常用用法:
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
 
使用--config写配置文件的方式简化命令:
pt-kill --config tmp.txt --log-dsn D=testdb,t=kill_log --create-log-table --match-info "SELECT|select" --victims all
 
cat tmp.txt
host=host2
user=root
password=123
port=3306
busy-time=10
print
kill-query
 
--match-info 是区分大小写的,匹配SELECT也就意味着对select无法匹配,因此使用"SELECT|select"包含大小写.

每天一个percona 工具 --- pt-kill的更多相关文章

  1. Angular+Flask搭建一个记录工具

    平时用的最多的文本编辑器就是Notepad++,很多东西都是通过Notepad++直接记录的: 没有看完的网页链接 要整理.收藏的网页 读书笔记 要处理的事情 待看/看过的文档和电子书 等等... 随 ...

  2. 【开源一个小工具】一键将网页内容推送到Kindle

    最近工作上稍微闲点,这一周利用下班时间写了一个小工具,其实功能挺简单但也小折腾了会. 工具名称:Simple Send to Kindle Github地址:https://github.com/zh ...

  3. 提高Scrum站会效率的一个小工具

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:提高Scrum站会效率的一个小工具.

  4. 封装一个Ajax工具函数

    /*封装一个ajax工具函数*/ window.$ = {}; /*通过$定义一个ajax函数*/ /* * 1. type   string   请求的方式  默认是get * 2. url     ...

  5. 分享一个数据库工具DTOOLS

    整理电脑的时候发现一个好的工具——DTOOLS,他是我在09年左右写的一个数据库工具. 可以干什么呢? 我罗列一下: 1.全面的展示数据库字段情况 2. 迅速切换,展示数据库记录情况,不输语句,即点即 ...

  6. 分享一个Snackbar工具类 SnackbarUtils;

    分享一个Snackbar工具类,源代码也是在Github上面找的,自己做了一下修改: 功能如下: 1:设置Snackbar显示时间长短                 1.1:Snackbar.LEN ...

  7. 推荐一个好工具:P/Invoke Interop Assistant【转】

    原文地址 :http://write.blog.csdn.net/postedit 在从托管代码里面调用非托管代码的时候,经常会翻阅MSDN找到需要调用的这个程序集里面的关于需要调用方法的签名,还要特 ...

  8. 【php增删改查实例】第四节 -自己 DIY 一个数据库管理工具

    本节介绍如何自己DIY一个数据库管理工具,可以在页面输入sql 进行简单的增删改查操作. 首先,找到xampp的安装目录,打开htdocs: 新建一个php文件,名称为 mysqladmin.php ...

  9. Maven是一个项目管理工具

    Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Depen ...

随机推荐

  1. php + jQuery自动完成插件autocompleter

    autocompleter是一个简单的,容易的,可定制的自动完成功能插件,支持缓存. 1.引用脚本 <script type="text/javascript" src=&q ...

  2. discuz!

    1. discuz! 安装包下载 http://www.discuz.net/thread-3570835-1-1.html

  3. JS事件

    JS事件:  声明:为了事件对象event跨浏览器兼容: var oEvent==ev||event;      所以在下面用到 event 的地方都用 oEvent 代替  1)doucument的 ...

  4. asp.net-枚举绑定控件

    1.DropDownList asp.net页面: <asp:DropDownList ID="drpTemplateType" runat="server&quo ...

  5. 如何配置pom.xml用maven打包java工程

    最近由于项目需要,研究了一下maven的打包,项目要做到 1,生成3个目录/lib,/conf,/bin目录 2,把所有的jar目录编译.拷贝到/lib目录(包括maven的jar包和lib目录下的j ...

  6. tomcat源码分析(三)一次http请求的旅行-从Socket说起

    p { margin-bottom: 0.25cm; line-height: 120% } tomcat源码分析(三)一次http请求的旅行 在http请求旅行之前,我们先来准备下我们所需要的工具. ...

  7. Excel与Word套打功能使用技巧及EXCEL数据处理成绩

    Excel与Word套打功能使用技巧 婚礼邀请友人参加,就需要写请柬.而且写请柬不但要求字写得端正,还不能有错别字,再加上邀请的朋友多,写请柬就是一个劳累活.这时我们利用Word的套打功能,就会让写请 ...

  8. freemaker时间格式转换,精确到毫秒

    在开发中,需要将时间以 2016-09-20 12:00:01:723 的形式里用freemaker展示在页面上,找了好久,终于找到了答案. "createTime":" ...

  9. python 最小公倍数

    最小公倍数 求解两个整数(不能是负数)的最小公倍数 方法一:穷举法 def LCM(m, n): if m*n == 0: return 0 if m > n: lcm = m else: lc ...

  10. \r与\n的区别

    \r : return 到当前行的最左边. \n: newline 向下移动一行,并不移动左右. Linux中\n表示回车+换行: Windows中\r\n表示回车+换行. Mac中\r表示回车+换行 ...