Centos7安装pt-query-digest慢查询工具与实践

安装

1)下载percona-toolkit 工具包

wget percona.com/get/percona-toolkit.tar.gz

2)解压

tar -zxvf percona-toolkit.tar.gz

3)进入安装目录

cd /home/percona-toolkit-3.1.0

4)安装perl模块,制定依赖路径

perl Makefile.PL PREFIX=/usr/local/percona-toolkit

报错如下:

Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .) at Makefile.PL line 2.
BEGIN failed--compilation aborted at Makefile.PL line 2.

使用yum install perl-ExtUtils-MakeMaker解决

5)安装依赖包

yum install perl-DBD-MySQL
yum -y install perl-Digest-MD5

再执行perl Makefile.PL PREFIX=/usr/local/percona-toolkit

6)编译安装

make && make install

控制台输出如下,则编译安装成功

Installing /usr/local/percona-toolkit/bin/pt-config-diff
Installing /usr/local/percona-toolkit/bin/pt-stalk
Appending installation info to /usr/local/percona-toolkit/lib64/perl5/perllocal.pod`

确认MySQL配置

使用show VARIABLES like '%query%'确认MySQL是否打开慢查询;

扫描二维码关注公众号,回复: 16494380 查看本文章
long_query_time	0.000000(慢查询时间)
slow_query_log	ON(是否开启慢查询)
slow_query_log_file	/var/lib/mysql/k8s-add_node3-slow.log(慢查询日志位置)

如果slow_query_log=off,配置/etc/my.cnf


[mysqld]
#打开慢查询
slow_query_log = ON
#设置超时时间为0,也就是记录所有的查询
long_query_time = 0

重启MySQL:systemctl restart mysqld

使用

首先进入到pt-query-digest所在位置,我的是在/home/percona-toolkit-3.1.0/bin下,执行./pt-query-digest /var/lib/mysql/k8s-add_node3-slow.log慢查询日志分析语句:

[root@k8s-add_node3 etc]# cd /home/percona-toolkit-3.1.0/bin/
[root@k8s-add_node3 bin]# ./pt-query-digest /var/lib/mysql/k8s-add_node3-slow.log

返回结果分为3大部分

  1. 第一部分
该工具执行日志分析的用户时间,系统时间,物理内存占用大小,虚拟内存占用大小
# 360ms user time, 10ms system time, 22.56M rss, 187.09M vsz
工具执行时间
# Current date: Fri Mar 20 22:54:14 2020
运行分析工具的主机名    
# Hostname: iZ2zebthf35ejlps5v87ksZ
被分析的文件名
# Files: /usr/local/src/slowsqlExample/slow0312.log
语句总数量,唯一的语句数量,QPS,并发数
# Overall: 906 total, 21 unique, 0.02 QPS, 0.07x concurrency _____________
日志记录的时间范围
# Time range: 2020-03-11 12:22:13 to 2020-03-12 00:16:57
# Attribute          total     min     max     avg     95%  stddev  median
# ============     ======= ======= ======= ======= ======= ======= =======
语句执行时间
# Exec time          2991s      2s     10s      3s      5s      1s      3s
锁占用时间
# Lock time          552ms    24us   371ms   609us   103us    12ms    57us
发送到客户端的行数
# Rows sent        167.53k       0  17.99k  189.35  487.09   1.22k       0
select语句扫描行数
# Rows examine     980.73M     238   1.96M   1.08M   1.95M 757.80k 753.18k
查询的字符数
# Query size       258.71k      17   1.77k  292.41  463.90  202.02  329.68
  1. 第二部分
# Profile
Rank:所有语句的排名,默认按查询时间降序排列,通过--order-by指定
Query ID:语句的ID,(去掉多余空格和文本字符,计算hash值)
Response:总的响应时间
time:该查询在本次分析中总的时间占比
calls:执行次数,即本次分析总共有多少条这种类型的查询语句
R/Call:平均每次执行的响应时间
V/M:响应时间Variance-to-mean的比率
Item:查询对象
# Rank Query ID                        Response time   Calls R/Call V/M   
# ==== =============================== =============== ===== ====== ===== 
#    1 0xABD1DCCCCD5AA5128E10C27B34... 1246.6948 41.7%   283 4.4053  0.04 UPDATE ziweidashi_deviceinfo
#    2 0x6914B81AAD1785E50708ABD113...  877.6900 29.3%   339 2.5891  0.09 SELECT birthDay_notify
#    3 0x44D9474C6D5C58DD07B5FEEA0D...  299.4193 10.0%    71 4.2172  0.05 SELECT tmall_product_orders
#    4 0xA9BE84CBE3DAA9B1CDD9B5A9EC...  127.0137  4.2%    46 2.7612  0.04 SELECT daily_user_action_log
#    5 0xCF0E12117C971C3013142E3717...  118.3138  4.0%    49 2.4146  0.05 SELECT tmall_user_take_coupon_record
#    6 0x94263184D24186330B13193534...   97.0805  3.2%    35 2.7737  0.56 SELECT tgg_users
#    7 0xC51165F1287A2ECDA221AC1F54...   52.5870  1.8%    22 2.3903  0.04 SELECT util_user_task_log
#    8 0xB8004D6D8A7A7967E04CD81E26...   43.7895  1.5%    16 2.7368  0.08 SELECT daily_user_action_log
#    9 0x910E19224F33DAA6391927B8E8...   41.3720  1.4%    15 2.7581  1.17 SELECT qifugong_tianbi_record
# MISC 0xMISC                            86.7871  2.9%    30 2.8929   0.0 <12 ITEMS>
  1. 第三部分
第三及后续部分,第一条查询语句 query id:0xABD1DCCCCD5AA5128E10C27B34BC04E7
# Query 1: 0.01 QPS, 0.03x concurrency, ID 0xABD1DCCCCD5AA5128E10C27B34BC04E7 at byte 355748
# Scores: V/M = 0.04
# Time range: 2020-03-11 12:24:03 to 2020-03-12 00:16:13
# Attribute    pct   total     min     max     avg     95%  stddev  median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count         31     283
# Exec time     41   1247s      4s      8s      4s      5s   437ms      4s
# Lock time     69   386ms    24us   371ms     1ms    93us    21ms    44us
# Rows sent      0       0       0       0       0       0       0       0
# Rows examine  18 180.00M 651.14k 651.45k 651.29k 650.62k       0 650.62k
# Query size    10  27.64k     100     100     100     100       0     100
# String:
数据库名
# Databases    taxen_ziweidashi
执行主机
# Hosts        118.190.93.166
执行用户
# Users        devAccount
查询时间占比
# Query_time distribution
#   1us
#  10us
# 100us
#   1ms
#  10ms
# 100ms
#    1s  ################################################################
#  10s+
# Tables
#    SHOW TABLE STATUS FROM `taxen_ziweidashi` LIKE 'ziweidashi_deviceinfo'\G
#    SHOW CREATE TABLE `taxen_ziweidashi`.`ziweidashi_deviceinfo`\G
UPDATE ziweidashi_deviceinfoSET expired = 1 WHERE createTime   <=   1583942580685\G
# Converted for EXPLAIN
# EXPLAIN /*!50100 PARTITIONS*/
select  expired = 1 from ziweidashi_deviceinfo where  createTime   <=   1583942580685\G

常用命令

1.分析慢查询文件

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

2.分析最近12小时内的查询

pt-query-digest --since=12h slow.log > slow_report2.log

3.分析指定时间范围内的查询

pt-query-digest slow.log --since ‘2017-01-07 09:30:00’ --until ‘2017-01-07 10:00:00’> > slow_report3.log

猜你喜欢

转载自blog.csdn.net/foolere/article/details/131273848