Pt-Query-Digest安装

Pt-Query-Digest安装

pt-query-digest is a sophisticated but easy to use tool for analyzing MySQL queries. It can analyze queries from MySQL slow, general, and binary logs.

一、下载

https://downloads.percona.com/downloads/percona-toolkit/3.3.1/binary/tarball/percona-toolkit-3.3.1_x86_64.tar.gz
https://www.percona.com/software/database-tools/percona-toolkit
https://www.percona.com/doc/percona-toolkit/LATEST/pt-query-digest.html

image-20210710175618695

二、安装依赖包

yum -y install perl-TermReadKey perl-Time-HiRes perl-IO-Socket-SSL.noarch perl-Digest-MD5 perl-DBD-MySQL

三、安装Percona-toolkit

[root@db01 soft]# tar xvf percona-toolkit-3.3.1_x86_64.tar.gz -C /usr/local/

[root@db01 soft]# cd /usr/local/

[root@db01 local]# ln -s percona-toolkit-3.3.1 toolkit

[root@db01 bin]# vi /etc/profile

export PATH=/application/mysql/bin:/usr/local/toolkit/bin:$PATH

[root@db01 bin]# source /etc/profile

四、查看慢查询日志参数

[root@db01 ~]# more /etc/my.cnf

#慢查询日志

slow_query_log=1

slow_query_log_file=/data/mysql/data/slow.log

long_query_time=10

log_queries_not_using_indexes=1

五、使用方法

pt-query-digest [OPTIONS] [FILES] [DSN]

(1) 慢查询日志分析统计

pt-query-digest /usr/local/mysql/data/slow.log

(2) 服务器摘要

pt-summary

(3) 服务器磁盘监测

pt-diskstats

(4)mysql 服务状态摘要

pt-mysql-summary --user=root --password=123456

六、查看慢查询日志

mysql> select sleep(7);
+----------+
| sleep(7) |
+----------+
|        0 |
+----------+
1 row in set (7.00 sec)

mysql> select sleep(10);
+-----------+
| sleep(10) |
+-----------+
|         0 |
+-----------+
1 row in set (10.00 sec)

mysql> select sleep(11);
+-----------+
| sleep(11) |
+-----------+
|         0 |
+-----------+
1 row in set (11.00 sec)

[root@db01 ~]# tail -f  /data/mysql/data/slow.log
/application/mysql/bin/mysqld, Version: 5.7.26-log (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument
# Time: 2021-07-11T10:14:55.134944Z
# User@Host: root[root] @ localhost []  Id:     2
# Query_time: 10.000212  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1625998495;
select sleep(10);
# Time: 2021-07-11T10:15:16.267301Z
# User@Host: root[root] @ localhost []  Id:     2
# Query_time: 11.000393  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1625998516;
select sleep(11);

[root@db01 ~]# pt-query-digest /data/mysql/data/slow.log

# 80ms user time, 20ms system time, 22.11M rss, 184.77M vsz
# Current date: Sun Jul 11 18:17:49 2021
# Hostname: db01
# Files: /data/mysql/data/slow.log
# Overall: 2 total, 1 unique, 0.10 QPS, 1.00x concurrency ________________
# Time range: 2021-07-11T10:14:55 to 2021-07-11T10:15:16
# Attribute          total     min     max     avg     95%  stddev  median
# ============     ======= ======= ======= ======= ======= ======= =======
# Exec time            21s     10s     11s     11s     11s   707ms     11s
# Lock time              0       0       0       0       0       0       0
# Rows sent              2       1       1       1       1       0       1
# Rows examine           0       0       0       0       0       0       0
# Query size            32      16      16      16      16       0      16

# Profile
# Rank Query ID                            Response time  Calls R/Call  V/
# ==== =================================== ============== ===== ======= ==
#    1 0x59A74D08D407B5EDF9A57DD5A41825CA  21.0006 100.0%     2 10.5003  0.05 SELECT

# Query 1: 0.10 QPS, 1.00x concurrency, ID 0x59A74D08D407B5EDF9A57DD5A41825CA at byte 393
# This item is included in the report because it matches --limit.
# Scores: V/M = 0.05
# Time range: 2021-07-11T10:14:55 to 2021-07-11T10:15:16
# Attribute    pct   total     min     max     avg     95%  stddev  median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count        100       2
# Exec time    100     21s     10s     11s     11s     11s   707ms     11s
# Lock time      0       0       0       0       0       0       0       0
# Rows sent    100       2       1       1       1       1       0       1
# Rows examine   0       0       0       0       0       0       0       0
# Query size   100      32      16      16      16      16       0      16
# String:
# Hosts        localhost
# Users        root
# Query_time distribution
#   1us
#  10us
# 100us
#   1ms
#  10ms
# 100ms
#    1s
#  10s+  ################################################################
# EXPLAIN /*!50100 PARTITIONS*/
select sleep(11)\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 '2021-01-07 09:30:00' --until '2021-01-07 10:00:00' > > slow_report3.log

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

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

5. 针对某个用户的慢查询

pt-query-digest --filter '($event->{user} || "") =~ m/^root/i' slow.log> slow_report5.log

6. 查询所有所有的全表扫描或full join的慢查询

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

7. 把查询保存到 query_review表

pt-query-digest --user=root –password=abc123 --review  h=localhost,D=test,t=query_review--create-review-table  slow.log

8. 把查询保存到 query_history表

pt-query-digest  --user=root –password=abc123 --review  h=localhost,D=test,t=query_history--create-review-table  slow.log_0001
pt-query-digest  --user=root –password=abc123 --review  h=localhost,D=test,t=query_history--create-review-table  slow.log_0002

9. 通过 tcpdump 抓取 mysql 的 tcp 协议数据,然后再分析

tcpdump -s 65535 -x -nn -q -tttt -i any -c 1000 port 3306 > mysql.tcp.txt
pt-query-digest --type tcpdump mysql.tcp.txt> slow_report9.log

10. 分析 binlog

mysqlbinlog mysql-bin. 000093 > mysql-bin000093.sql
pt-query-digest  --type=binlog  mysql-bin000093.sql > slow_report10.log

11. 分析 general log

pt-query-digest  --type=genlog  localhost.log > slow_report11.log

12.从主机host1的进程中分析慢查询

pt-query-digest --processlist h=host1
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇