---- pt-query-digest 简介 子曰:“工欲善其事,必先利其器” 善于利用好的性能分析工具可以使运维效率事半功倍。 pt-query-digest 属于 Percona Toolkit 工具集中较为常用的工具,用于分析 slow log,可以分析 MySQL 数据库的 binary log 、 general log 分析慢日志 [root@xxx 7777]# pt-query-digest mysql-slow.log # 3.6s user time, 100ms system time, 32.64M 50100 PARTITIONS*/ select * from sbtest1 WHERE id=50296\G 分析 pt-query-digest 输出结果 第一部分:输出结果的总体信息 进程所分配的内存大小 pt-query-digest进程所分配的虚拟内存大小 # Current date: Wed Sep 2 11:22:34 2020 说明:当前日期 # Hostname
使用pt-query-digest分析mysql慢日志 今天早上来,某一台服务器疯狂报警,几乎每五分钟报警一次,报警的内容是"某些SQL语句执行效率慢",这个问题总体上分为两类,第一类是出现了慢查询语句 ,第二类是某些查询语句没有使用索引,由于数据的写入量非常大,所以要想直接打开慢查询日志来查看到底哪些语句有问题几乎是不可能的,因为日志的刷新速度太快了,于是想起了pt工具,pt工具中的pt-query-digest 如果不想用sed命令,其实pt工具本身也自带一些参数,可以通过--since参数和--until参数来把日志中固定时间段的日志打印出来,如下 pt-query-digest --since='2019 下面给出pt-query-digest常用方法。 pt-query-digest常用方法 ? 1.直接分析慢查询文件: pt-query-digest slow.log > slow_report.log 2.分析最近小时内的查询: pt-query-digest --since=h slow.log
2. qt-query-digest的使用 2.1 安装 • 创建目录: mkdir db-analysis && cd db-analysis • 下载 pt-query-digest: curl -LO https://percona.com/get/pt-query-digest • 设置执行权限:chmod +x pt-query-digest • 将慢查询日志的文件复制到当前的目录下 /pt-query-digest lgj-Lenovo-G470-slow.log 结果 # 220ms user time, 10ms system time, 33.67M rss, 90.27M
5、MySQL慢查日志分析工具(pt-query-digest) 1、介绍及作用 作为一名优秀的mysql dba也需要有掌握几个好用的mysql管理工具,所以我也一直在整理和查找一些能够便于管理mysql 2、安装pt-query-digest工具 1.1、快速安装(注:必须先要安装wget) wget https://www.percona.com/downloads/percona-toolkit/2.2.16 输入【[root@node03 mysql]# pt-query-digest --help】 ? ? 4、分析慢查询日志 命令:pt-query-digest /data/mysql/data/db-3-12-slow.log 5、查找mysql的从库和同步状态 命令:pt-slave-find --host
proot -e"flushprivileges;" 我们可以看下表结构如下 3 分析mysql慢日志 # pt版本高于2.2的执行下面语句,将慢查询日志放入名为slow_query_log数据库中 # pt-query-digest //192.168.0.88/ 即可如下图所示(这几张图片是从别人博客摘录的,他这个截图做的特别详细) 5 自动滚动日志 # vi /etc/logrotate.d/mysql postrotate pt-query-digest 在两个节点执行pt命令分析慢查询日志,并写入到各自的数据库中 node1上执行: # pt-query-digest --user=anemometer --password=123456--host Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\""localhost-slow.log node2上执行: # pt-query-digest 另外,慢查询日志建议按天切分,这样用pt-query-digest进行SQL慢查询日志统计的时候就避免重复分析了。
e3edd0de9e5d-slow.log; 二、分析慢查询日志 1、mysqldumpslow: mysqldumpslow -t 3 /var/lib/mysql/e3edd0de9e5d-slow.log; 2、pt-query-digest : 1)、安装pt-query-digest:wget percona.com/get/pt-query-digest;chmod u+x pt-query-digest;mv /root/pt-query-digest /usr/bin/; 2)、简单使用:pt-query-digest /var/lib/mysql/e3edd0de9e5d-slow.log | more; 版权声明:本文内容由互联网用户自发贡献
pt-query-digest可用于分析mysql慢查询日志,也可以分析binlog、General log、slowlog。 (1)慢查询日志分析统计 pt-query-digest /app/mysql5.7/logs/slow.log (2)服务器摘要 pt-summary (3)服务器磁盘监测 pt-diskstats (4)mysql服务状态摘要 pt-mysql-summary – --user=root --password=root pt-query-digest语法及选项 pt-query-digest pt-query-digest输出结果解析 第一部分:总体统计结果 Overall:总共有多少条查询 Time range:查询执行的时间范围 unique:唯一查询数量,即对查询条件进行参数化以后 pt-query-digest /app/mysql5.7/logs/slow.log --since '2017-01-06 10:30:00' --until '2017-03-07 11:00:
4.1安装 具体参考3.1节 4.2使用 pt-query-digest主要用来分析mysql的慢日志,与mysqldumpshow工具相比,py-query_digest 工具的分析结果更具体,更完善 [root@localhost ~]# pt-query-digest /var/lib/mysql/slowtest-slow.log 4.3 常见用法分析 1)直接分析慢查询文件: pt-query-digest /var/lib/mysql/slowtest-slow.log > slow_report.log 2)分析最近12小时内的查询: pt-query-digest --since=12h /var/ lib/mysql/slowtest-slow.log > slow_report2.log 3)分析指定时间范围内的查询: pt-query-digest /var/lib/mysql/slowtest-slow.log --since '2017-01-07 09:30:00' --until '2017-01-07 10:00:00'> > slow_report3.log 4)分析指含有select语句的慢查询 pt-query-digest
4.1安装 具体参考3.1节 4.2使用 pt-query-digest主要用来分析mysql的慢日志,与mysqldumpshow工具相比,py-query_digest 工具的分析结果更具体,更完善 [root@localhost ~]# pt-query-digest /var/lib/mysql/slowtest-slow.log 4.3 常见用法分析 1)直接分析慢查询文件: pt-query-digest /var/lib/mysql/slowtest-slow.log > slow_report.log 2)分析最近12小时内的查询: pt-query-digest --since=12h/var /lib/mysql/slowtest-slow.log > slow_report2.log 3)分析指定时间范围内的查询: pt-query-digest /var/lib/mysql/slowtest-slow.log --since '2017-01-07 09:30:00'--until'2017-01-07 10:00:00'> > slow_report3.log 4)分析指含有select语句的慢查询 pt-query-digest
安装 具体参考3.1节 使用 pt-query-digest主要用来分析mysql的慢日志,与mysqldumpshow工具相比,py-query_digest 工具的分析结果更具体,更完善。 [root@localhost ~]# pt-query-digest /var/lib/mysql/slowtest-slow.log 常见用法分析 1)直接分析慢查询文件: pt-query-digest / var /lib/mysql/slowtest-slow.log > slow_report.log 2)分析最近12小时内的查询: pt-query-digest --since=12h /var /lib/mysql/slowtest-slow.log > slow_report2.log 3)分析指定时间范围内的查询: pt-query-digest /var/lib/mysql/slowtest-slow.log -since '2017-01-07 09:30:00' --until '2017-01-07 10:00:00'> > slow_report3.log 4)分析指含有select语句的慢查询 pt-query-digest
4、pt-qurey-digest pt-query-digest 主要功能是从日志、进程列表和tcpdump分析MySQL查询。 4.1安装 具体参考3.1节 4.2使用 pt-query-digest主要用来分析mysql的慢日志,与mysqldumpshow工具相比,py-query_digest 工具的分析结果更具体,更完善 [root@localhost ~]# pt-query-digest /var/lib/mysql/slowtest-slow.log 4.3 常见用法分析 1)直接分析慢查询文件: pt-query-digest /var/lib/mysql/slowtest-slow.log > slow_report.log 2)分析最近12小时内的查询: pt-query-digest --since=12h /var/ lib/mysql/slowtest-slow.log > slow_report2.log 3)分析指定时间范围内的查询: pt-query-digest /var/lib/mysql/slowtest-slow.log
4、pt-qurey-digest pt-query-digest 主要功能是从日志、进程列表和tcpdump分析MySQL查询。 4.1安装 具体参考3.1节 4.2使用 pt-query-digest主要用来分析mysql的慢日志,与mysqldumpshow工具相比,py-query_digest 工具的分析结果更具体,更完善 [root@localhost ~]# pt-query-digest /var/lib/mysql/slowtest-slow.log 4.3 常见用法分析 1)直接分析慢查询文件: pt-query-digest /var/lib/mysql/slowtest-slow.log > slow_report.log 2)分析最近12小时内的查询: pt-query-digest --since=12h /var/ lib/mysql/slowtest-slow.log > slow_report2.log 3)分析指定时间范围内的查询: pt-query-digest /var/lib/mysql/slowtest-slow.log
pt-query-digest是我用的最多的一个工具,功能非常强大,可以分析binlog、General log、slowlog,也可以通过show processlist或者通过tcpdump抓取的 pt-query-digest是一个perl脚本,只需下载并赋权即可执行 下载和赋权 wget www.percona.com/get/pt-query-digest chmod u+x pt-query-digest ln -s /opt/soft/pt-query-digest /usr/bin/pt-query-digest 用法介绍 // 查看具体使用方法 pt-query-digest --help / slow.log # 分析最近12小时内的查询 pt-query-digest --since=12h slow.log # 分析指定范围内的查询 pt-query-digest slow.log 于是我用pt-query-digest统计了一下1分钟左右的慢日志,发现事务提交的次很多,但是每次提交事务的平均时长是1.4s左右,果然是事务提交很慢。
4.1安装 具体参考3.1节 4.2使用 pt-query-digest要用来分析mysql的慢日志,与mysqldumpshow工具相比,py-query_digest 工具的分析结果更具体,更完善。 [root@localhost ~]# pt-query-digest /var/lib/mysql/slowtest-slow.log 4.3 常见用法分析 1)直接分析慢查询文件: pt-query-digest /var/lib/mysql/slowtest-slow.log > slow_report.log 2)分析最近12小时内的查询: pt-query-digest --since=12h /var /lib/mysql/slowtest-slow.log > slow_report2.log 3)分析指定时间范围内的查询: pt-query-digest /var/lib/mysql/slowtest-slow.log -since '2017-01-07 09:30:00' --until '2017-01-07 10:00:00'> > slow_report3.log 4)分析指含有select语句的慢查询 pt-query-digest
2、使用pt-query-digest工具进行分析 mysqldumpslow是mysql安装后就自带的工具,用于分析慢查询日志,但是pt-query-digest却不是mysql自带的,如果想使用pt-query-digest 进行慢查询日志的分析,则需要自己安装pt-query-digest。 chmod u+x pt-query-digest mv pt-query-digest /usr/bin/ (2)查看具体参数作用 pt-query-digest –help (3)使用 (4)如何通过pt-query-digest 慢查询日志发现有问题的sql 1)查询次数多且每次查询占用时间长的sql 通常为pt-query-digest分析的前几个查询 2)IO消耗大的sql 注意 pt-query-digest分析中的Rows examine项 3)为命中索引的sql 注意pt-query-digest分析中Rows examine(扫描行数) 和 Rows sent (发送行数
2、使用pt-query-digest工具进行分析 mysqldumpslow是mysql安装后就自带的工具,用于分析慢查询日志,但是pt-query-digest却不是mysql自带的,如果想使用pt-query-digest 进行慢查询日志的分析,则需要自己安装pt-query-digest。 chmod u+x pt-query-digest mv pt-query-digest /usr/bin/ (2)查看具体参数作用 pt-query-digest --help ? (4)如何通过pt-query-digest 慢查询日志发现有问题的sql 1)查询次数多且每次查询占用时间长的sql 通常为pt-query-digest分析的前几个查询 2)IO消耗大的sql 注意 pt-query-digest分析中的Rows examine项 3)为命中索引的sql 注意pt-query-digest分析中Rows examine(扫描行数) 和 Rows sent (发送行数
在慢日志分析领域,pt-query-digest 一直是很多 DBA 的常见入门工具。 为什么 pt-query-digest 直到今天仍然值得尊重先把这一点说清楚很重要。 pt-query-digest 不是“过时工具”,它今天依然适合很多场景:比如某个单实例的 MySQL slow log 需要快速离线解析,或者 DBA 想对一批日志文件做定制化过滤和排序。 NineData 与 pt-query-digest 相比,更主要的差异并不在于算法是否更偏底层,而在于工作方式更贴合企业长期运行。 考虑调整主要方案如果你的团队只是偶尔分析一台 MySQL 的 slow log,pt-query-digest 依然够用。
pt-qurey-digest pt-query-digest 主要功能是从日志、进程列表和tcpdump分析MySQL查询。 安装 https://www.percona.com/downloads/percona-toolkit/LATEST/ 使用 pt-query-digest主要用来分析mysql的慢日志,与mysqldumpshow [root@localhost ~]# pt-query-digest /var/lib/mysql/slowtest-slow.log 常见用法分析 1)直接分析慢查询文件: pt-query-digest /var/lib/mysql/slowtest-slow.log > slow_report.log 2)分析最近12小时内的查询: pt-query-digest --since=12h /var /lib/mysql/slowtest-slow.log > slow_report2.log 3)分析指定时间范围内的查询: pt-query-digest /var/lib/mysql/slowtest-slow.log
4.1安装 具体参考3.1节 4.2使用 pt-query-digest主要用来分析mysql的慢日志,与mysqldumpshow工具相比,py-query_digest 工具的分析结果更具体,更完善 [root@localhost ~]# pt-query-digest /var/lib/mysql/slowtest-slow.log 4.3 常见用法分析 1)直接分析慢查询文件: pt-query-digest /var/lib/mysql/slowtest-slow.log > slow_report.log 2)分析最近12小时内的查询: pt-query-digest --since=12h/var /lib/mysql/slowtest-slow.log > slow_report2.log 3)分析指定时间范围内的查询: pt-query-digest /var/lib/mysql/slowtest-slow.log --since '2017-01-07 09:30:00'--until'2017-01-07 10:00:00'> > slow_report3.log 4)分析指含有select语句的慢查询 pt-query-digest
4.1安装 具体参考3.1节 4.2使用 pt-query-digest主要用来分析mysql的慢日志,与mysqldumpshow工具相比,py-query_digest 工具的分析结果更具体,更完善 [root@localhost ~]# pt-query-digest /var/lib/mysql/slowtest-slow.log 4.3 常见用法分析 1)直接分析慢查询文件: pt-query-digest /var/lib/mysql/slowtest-slow.log > slow_report.log 2)分析最近12小时内的查询: pt-query-digest --since=12h /var /lib/mysql/slowtest-slow.log > slow_report2.log 3)分析指定时间范围内的查询: pt-query-digest /var/lib/mysql/slowtest-slow.log -since '2017-01-07 09:30:00' --until '2017-01-07 10:00:00'> > slow_report3.log 4)分析指含有select语句的慢查询 pt-query-digest