mysql 慢日志分析工具pt-query-digest

之前windows下mysql5.6.20使用mysqldumpslow.pl分析慢日志,今天又看到一个工具pt-query-digest,原本打算在windows上安装使用,结果在windows上执行C:\Program Files\MySQL\MySQL
Server 5.6\bin>pt-query-digest.pl  F:\mysql\im-slow.log > F:\mysql\slow_report.log,等了半小时都出不来结果。想必是不怎么支持windows吧,那就一心一意用linux吧。

   1. 先安装perl, 登录 https://www.perl.org/get.html ,我选择的是最新版。

解压后来到perl的安装目录执行

[[email protected] perl-5.22.0]# ./Configure -des -Dprefix=/usr/perl-5.22.0 -Dusethreads -Uversiononly

验证是否安装成功

[[email protected] perl-5.22.0]# perl -version

This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi

Copyright 1987-2009, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the

GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on

this system using "man perl" or "perldoc perl".  If you have access to the

Internet, point your browser at http://www.perl.org/, the Perl Home Page.

  2.下载pt-query-digest,https://www.percona.com/downloads/percona-toolkit/,下载percona-toolkit_2.2.14.tar.gz 。

tar zxvf 解压后,来到安装目录下/data/percona-toolkit-2.2.14执行

[[email protected] perl-5.22.0]#   perl Makefile.PL

[[email protected] perl-5.22.0]#   make

[[email protected] perl-5.22.0]#   make install

  3.pt-query-digest  /data/im-slow.log > /data/slow_report.log ,相比windows半天出不来,这个结果几乎秒出。

Overall: 总共有多少条查询,上例为总共266个查询。
Time range: 查询执行的时间范围。
unique: 唯一查询数量,即对查询条件进行参数化以后,总共有多少个不同的查询,该例为55。

# 34.3s user time, 310ms system time, 44.95M rss, 196.52M vsz

# Current date: Thu Aug 13 10:51:55 2015

# Hostname: VM-10.10.X.X

# Files: /data/im-slow.log

# Overall: 64.10k total, 179 unique, 0.00 QPS, 0.10x concurrency _________

# Time range: 2015-02-08 06:52:36 to 2015-07-29 09:02:02

# Attribute          total     min     max     avg     95%  stddev  median

# ============     ======= ======= ======= ======= ======= ======= =======

# Exec time        1405895s      5s   4899s     22s     32s    111s     10s

# Lock time         62995s       0   2476s   983ms     1ms     48s   144us

# Rows sent          5.69G       0  44.43M  93.04k    5.75   1.34M    0.99

# Rows examine      13.96G       0 693.12M 228.36k  44.45k   3.49M    0.99

# Query size        37.30M       6 335.57k  610.11  918.49   6.98k  537.02

# Profile

# Rank Query ID           Response time     Calls R/Call    V/M   Item

# ==== ================== ================= ===== ========= ===== ========

#    1 0x0F2E6B958872280E 274452.3245 19.5% 26566   10.3310  2.39 SELECT gg_token gg_tenant

#    2 0x816F5D9DB1BD38C7 246396.5092 17.5% 15295   16.1096 31... INSERT gg_login_history

#    3 0xA3267D6CEFA1D5E3 203446.8729 14.5%   100 2034.4687 13... SELECT gg_token gg_login_history

#    4 0x67A347A2812914DF 170491.0463 12.1%   972  175.4023 44... SELECT app_chat_message

#    5 0x8BACA5842B7A7490  95999.5908  6.8%  5737   16.7334 37... INSERT app_offline_message

#    6 0x2B874BB5CB81DC1F  68234.7809  4.9%   105  649.8551 87.61 SELECT gg_token gg_login_history

#    7 0x848218FE4D9F7651  51218.6838  3.6%   210  243.8985 12.52 SELECT gg_token

#    8 0xBF9265005D4F8D80  40299.7591  2.9%    78  516.6636 28... SELECT gg_login_history gg_user gg_user_org gg_org

#    9 0xDCDBC481602798A4  39449.2606  2.8%  3193   12.3549  4.68 SELECT gg_token

Databases: 库名

Users: 各个用户执行的次数(占比)

Query_time distribution : 查询时间分布, 长短体现区间占比

Tables: 查询中涉及到的表

Explain: 示例

# Query 1: 0.03 QPS, 0.30x concurrency, ID 0x0F2E6B958872280E at byte 28156661

# This item is included in the report because it matches --limit.

# Scores: V/M = 2.39

# Time range: 2015-06-16 00:05:14 to 2015-06-26 11:33:23

# Attribute    pct   total     min     max     avg     95%  stddev  median

# ============ === ======= ======= ======= ======= ======= ======= =======

# Count         41   26566

# Exec time     19 274452s      5s     54s     10s     12s      5s     10s

# Lock time      0     24s    64us    40ms   885us     1ms   738us   839us

# Rows sent      0  80.00k       0      13    3.08    4.96    1.29    2.90

# Rows examine   8   1.15G  44.73k  45.59k  45.43k  44.45k       0  44.45k

# Query size    36  13.78M     542     544  543.73  537.02       0  537.02

# String:

# Databases    im

# Hosts        10.100.252.38 (13301/50%)... 1 more

# Users        im

# Query_time distribution

#   1us

#  10us

# 100us

#   1ms

#  10ms

# 100ms

#    1s  ########################################################

#  10s+  ################################################################

# Tables

#    SHOW TABLE STATUS FROM `im` LIKE ‘gg_token‘\G

#    SHOW CREATE TABLE `im`.`gg_token`\G

#    SHOW TABLE STATUS FROM `im` LIKE ‘gg_tenant‘\G

#    SHOW CREATE TABLE `im`.`gg_tenant`\G

# EXPLAIN /*!50100 PARTITIONS*/

select token0_.token_id as token_id1_119_, token0_.tenant_id as tenant_10_119_, token0_.account as account2_119_, token0_.client_id as client_i3_119_, token0_.create_date as create_d4_119_, token0_.host as host5_119_, token0_.last_auth_date as last_aut6_119_,
token0_.session_id as session_7_119_, token0_.token as token8_119_, token0_.user_id as user_id9_119_ from gg_token token0_ left outer join gg_tenant tenant1_ on token0_.tenant_id=tenant1_.tenant_id where token0_.user_id=‘00014806a5a95f25ab‘ and tenant1_.tenant_id=‘0001456d92804b00‘\G

# Query 2: 0.00 QPS, 0.02x concurrency, ID 0x816F5D9DB1BD38C7 at byte 17658778

# This item is included in the report because it matches --limit.

# Scores: V/M = 314.49

# Time range: 2015-03-21 13:31:25 to 2015-07-18 15:11:32

# Attribute    pct   total     min     max     avg     95%  stddev  median

# ============ === ======= ======= ======= ======= ======= ======= =======

# Count         23   15295

# Exec time     17 246397s      5s   2498s     16s     32s     71s     11s

# Lock time     51  32142s       0   2476s      2s   125us     71s    89us

# Rows sent      0       0       0       0       0       0       0       0

# Rows examine   0       0       0       0       0       0       0       0

# Query size     9   3.55M     221     258  243.36  246.02    7.37  234.30

# String:

# Databases    im

# Hosts        10.101.252.35 (7709/50%)... 3 more

# Users        im

# Query_time distribution

#   1us

#  10us

# 100us

#   1ms

#  10ms

# 100ms

#    1s  #############################################

#  10s+  ################################################################

# Tables

#    SHOW TABLE STATUS FROM `im` LIKE ‘gg_login_history‘\G

#    SHOW CREATE TABLE `im`.`gg_login_history`\G

INSERT INTO gg_login_history(login_history_id,username,resource,clientId,login_time,logout_time) VALUES(‘930e0b3e-d26b-4cc3-a02f-be0b1009744c‘,‘000148b62c6a6e290‘,‘Android‘,‘354273054207050‘,‘2015-04-13 23:04:42‘,‘2015-04-13 23:07:46‘)\G

最常用的使用方法:

(1)直接分析慢查询文件:

pt-query-digest  slow.log > slow_report.log

(2)分析最近1小时内的查询:

pt-query-digest  --since=1h  slow.log > slow_report.log

(3)分析指定时间范围内的查询:

pt-query-digest slow.log --since ‘2015-04-17 10:30:00‘ --until ‘2015-04-17 18:00:00‘>slow_report.log

(4)分析指含有select语句的慢查询

pt-query-digest--filter ‘$event->{fingerprint} =~ m/^select/i‘ slow.log> slow_report.log

(5) 查询所有所有的全表扫描或full join的慢查询

pt-query-digest--filter ‘(($event->{Full_scan} || "") eq "yes") ||(($event->{Full_join} || "") eq "yes")‘ slow.log> slow_report.log

详细的使用说明:

https://www.percona.com/doc/percona-toolkit/2.1/pt-query-digest.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 04:16:07

mysql 慢日志分析工具pt-query-digest的相关文章

mysql慢查询日志分析工具mysqlsla

一.介绍    mysqlsla是一个分析mysql慢日志的工具,可以分析出慢查询的原因,包括执行某条sql出现的次数及在slow log数据的百分比.执行时间.等待销的时间等. 公司的数据库有很多慢查询日志,导致的系统的负载很高,而mysql慢查询日志文件内容格式不太好看,经推荐使用mysqlsla:使用方便,操作简单. 二.安装mysqlsla 系统环境 CentOS release 6.6 (Final) 2.6.32-504.el6.x86_64 官网已经不能下载,所需要的文件已在百度云

mysql慢查询日志分析工具使用

参考:  5种mysql日志分析工具比拼 http://blog.csdn.net/gzh0222/article/details/10384475 1.mysql-log-filter工具脚本使用说明: google code上找到的一个分析工具.提供了 python 和 php 两种可执行的脚本.http://code.google.com/p/mysql-log-filter/ (需要搬梯子爬墙),51cto下载链接: 使用方法:(这里只介绍python的使用方法) python mysq

5种mysql日志分析工具比拼

5种mysql日志分析工具比拼 摘自: linux.chinaitlab.com  被阅读次数: 79 由 yangyi 于 2009-08-13 22:18:05 提供 mysql slow log 是用来记录执行时间较长(超过long_query_time秒)的sql的一种日志工具. 启用 slow log 有两种启用方式: 1, 在my.cnf 里 通过 log-slow-queries[=file_name] 2, 在mysqld进程启动时,指定–log-slow-queries[=fi

Mysql 配置慢查询日志(SlowQueryLog)以及使用日志分析工具

[ 查看系统关于慢查询的设置 ] mysql> show variables like '%slow%'; +---------------------------+--------------------------------+ | Variable_name | Value | +---------------------------+--------------------------------+ | log_slow_admin_statements | OFF | | log_sl

(3.14)mysql基础深入——mysql 日志分析工具之pt-querty-digest【待完善】

关键字:Mysql日志分析工具.mysqlsla 常用工具 [1]mysqldumpslow:官方提供的慢查询日志分析工具 [2]mysqlbinlog:二进制日志分析工具 [3]myprofi:对于只想看sql语句及执行次数的用户来说,比较推荐. [4]mysql-explain-slow-log:德国人写的一个Perl脚本,功能上有点瑕疵.不建议使用. [5]mysql-log-filter:生成简介报表日志分析,可以尝试使用一下. [6]pt-querty-digest(支持高级统计):是

mysql慢查询分析工具比较与实战

00 前言 在进行mysql性能优化的时候,第一个想到的便是查看慢sql. 但是对于慢sql有没有什么好的工具进行分析呢? 推荐两个工具mysqldumpslow及pt-query-digest. mysqlslowdump较为简单,常用命令: #得到返回记录最多的20个sql mysqldumpslow -s r -t 20 slowSQl.log # 得到平均访问次数最多的20条sql mysqldumpslow -s ar -t 20 slowSQl.log 如果linux上没有安装mys

mysql慢查询分析工具和分析方法

1.mysql慢查询分析工具 1.参考文档: http://www.ttlsa.com/mysql/analyse-slow-query-log-using-anemometer/ http://isadba.com/?p=655 官方文档: https://github.com/box/Anemometer 数据库管理员一般是用percona的toolkit工具来分析MySQL慢查询记录,但是不够直观. 下面介绍一款比较直观的工具来统计分析MySQL慢查询记录anemometer. 在使用之前

慢查询日志分析工具mysqldumpslow

mysqldumpslow是mysql自带的一种慢查询日志分析工具,顾名思义,就是查询那些出那些查询慢的SQL语句,由此分析出SQL查询效率慢的原因. 通常来说,mysqldumpslow分组查询的结果是相似的,它在展示统计结果时,可以将数字和字符串分别抽象成"N"和"S".当然也可以用-a 和 -n选项可以用来修改这些抽象的行为. mysqldumpslow查询命令 mysqldumpslow [options] [log_file] mysqldumpslow可

mysql慢查询分析工具 mysqlsla 安装

概述 mysqlsla 是一款很不错的mysql慢查询日志分析工具,而且简单易用.mysqlsla 是用perl编写的脚本,运行需要perl-DBI和per-DBD-Mysql两模块的支持. 安装环境 centos 7.1 percona 5.7 2.安装依赖包 yum install perl perl-DBI perl-DBD-Mysql 3.安装 tar zxvf mysqlsla-2.03.tar.gz cd mysqlsla-2.03 perl Makefile.PL make &&am