pt(percona-toolkit)工具集

pt工具有32个命令,可以分为7大类:

工具类别
工具命令
工具作用
备注

开发类

pt-duplicate-key-checker

列出并删除重复的索引和外键

开发类

pt-online-schema-change

在线修改表结构

开发类

pt-query-advisor

分析查询语句,并给出建议,有bug

已废弃

开发类

pt-show-grants

规范化和打印权限

开发类

pt-upgrade

在多个服务器上执行查询,并比较不同

性能类

pt-index-usage

分析日志中索引使用情况,并出报告

性能类

pt-pmp

为查询结果跟踪,并汇总跟踪结果

性能类

pt-visual-explain

格式化执行计划

性能类

pt-table-usage

分析日志中查询并分析表使用情况

配置类

pt-config-diff

比较配置文件和参数

配置类

pt-mysql-summary

对mysql配置和status进行汇总

配置类

pt-variable-advisor

分析参数,并提出建议

监控类

pt-deadlock-logger

提取和记录mysql死锁信息

监控类

pt-fk-error-logger

提取和记录外键信息

监控类

pt-mext

并行查看status样本信息

监控类

pt-query-digest

分析查询日志,并产生报告

常用命令

监控类

pt-trend

按照时间段读取slow日志信息

已废弃

复制类

pt-heartbeat

监控mysql复制延迟

复制类

pt-slave-delay

设定从落后主的时间

复制类

pt-slave-find

查找和打印所有mysql复制层级关系

复制类

pt-slave-restart

监控salve错误,并尝试重启salve

复制类

pt-table-checksum

校验主从复制一致性

复制类

pt-table-sync

高效同步表数据

系统类

pt-diskstats

查看系统磁盘状态

系统类

pt-fifo-split

模拟切割文件并输出

系统类

pt-summary

收集和显示系统概况

系统类

pt-stalk

出现问题时,收集诊断数据

系统类

pt-sift

浏览由pt-stalk创建的文件

系统类

pt-ioprofile

查询进程IO并打印一个IO活动表

实用类

pt-archiver

将表数据归档到另一个表或文件中

实用类

pt-find

查找表并执行命令

实用类

pt-kill

Kill掉符合条件的sql

常用命令

实用类

pt-align

对齐其他工具的输出

实用类

pt-fingerprint

将查询转成密文

安装

# CentOS
yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install -y percona-toolkit

# Ubuntu
apt install percona-toolkit

pt-query-digest

pt-query-digest slow.log > txt

结果解释

第一部分是摘要:

# 620ms user time, 10ms system time, 19.76M rss, 115.84M vsz

# Current date: Wed Mar 20 16:09:35 2013

# Hostname: srv-nc-ssh1                           

# Files: slow.log

# Overall: 371 total, 35 unique, 0.00 QPS, 0.05x concurrency _____________

# Time range: 2013-03-18 14:08:55 to 2013-03-19 12:23:36

# Attribute          total     min     max     avg     95%  stddev  median

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

# Exec time          3959s      1s     73s     11s     37s     12s      7s

# Lock time           246s       0     42s   663ms   204us      4s    66us

# Rows sent         37.53M       0   6.10M 103.58k 485.50k 580.16k       0

# Rows examine      71.32M       0   6.10M 196.86k 961.27k 607.20k       0

# Rows affecte       1.03M       0 973.91k   2.83k    0.99  49.98k    0.99

# Rows read         37.53M       0   6.10M 103.58k 485.50k 580.16k       0

# Bytes sent         4.48G      14 383.55M  12.36M 101.56M  45.74M   13.83

# Tmp tables           110       0       5    0.30    0.99    0.79       0

# Tmp disk tbl          12       0       1    0.03       0    0.18       0

# Tmp tbl size      21.67M       0 1009.90k  59.82k 245.21k 158.04k      0

# Query size        71.10k      31     983  196.25  400.73  100.16  166.51

对于第一部分摘要的解释:

# 620ms user time, 10ms system time, 19.76M rss, 115.84M vsz

该工具执行日志分析的用户时间,系统时间,物理内存占用大小,虚拟内存占用大小。

# Hostname: srv-nc-ssh1  

运行分析工具的主机名

# Files: slow.log

被分析的文件名

# Overall: 371 total, 35 unique, 0.00 QPS, 0.05x concurrency _____________

语句总数量 (371),唯一的语句(35),Qps, 并发数

# Time range: 2013-03-18 14:08:55 to 2013-03-19 12:23:36

日志记录的时间范围

# Attribute          total     min     max     avg     95%  stddev  median
 

在这些值中,最有意义的就是95%了,与中位数类似,它也是把所有值从小到大排列,位置位于95%的那个数。

#Row sent            发送到客户端的行数

#Query size          查询的字符大小

第二部分:

# Profile

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

Item# ==== ================== =============== ===== ======= ==== ===== =======

#    1 0x3BE81BF6A30F4C74 1702.9604 43.0%   182  9.3569 0.15  5.91 INSERT u_search_record

#    2 0x861AC23E20A17B65 1490.0836 37.6%    54 27.5941 0.05 13.54 SELECT UNION t_ask_price_info t_vouch_info t_cust_book t_hn_info

#    3 0xD43C719B4CE15C37   96.9039  2.4%    14  6.9217 0.11  1.42 SELECT u_car_info t_stas_auc_car

#    4 0x414D67056BE15CF4   58.2516  1.5%    20  2.9126 0.40  0.56 INSERT u_auction_back_cache

#    5 0x4A78E978D2543BCD   56.5418  1.4%     3 18.8473 0.00  3.14 SELECT t_cust_book

#    6 0x3A12FD01A8D9DA10   52.8541  1.3%     3 17.6180 0.00  0.00 SELECT t_auction_back_cache

#    7 0x9186BF39CBE58A0E   50.4508  1.3%     3 16.8169 0.00  0.01 SELECT t_check_result

#    8 0x68738A978FAB0D06   42.6112  1.1%     6  7.1019 0.17  4.66 SELECT t_sys_config t_hn_info t_hn_quote_list u_car_info

#    9 0x65EBDC4319D9955A   36.9794  0.9%     1 36.9794 0.00  0.00 INSERT SELECT t_hn_info t_hn_audit_quote

#   10 0x5203D60E3716D608   35.1022  0.9%     5  7.0204 0.00  0.05 SELECT mina_send

#   11 0x64C380BEB00DFB63   28.7720  0.7%    12  2.3977 0.50  0.40 SELECT u_vehicle_type

#   12 0xCDDA52E5A6B9F0B7   27.5927  0.7%     3  9.1976 0.00  0.00 SELECT rbvehicle

#   13 0xA5E766B81112B13A   27.5218  0.7%     4  6.8804 0.12  3.51 SELECT u_auction_back_cache

#   14 0x597A26236611758F   26.7460  0.7%     3  8.9153 0.00  0.65 SELECT t_hn_audit_quote t_ask_price_info

#   15 0x443D2230FC99811C   25.2928  0.6%     3  8.4309 0.00  0.00 SELECT t_hn_quote_list
  • Rank: 所有语句的排名,默认按查询时间降序排列,通过--order-by指定

  • Query ID:语句ID,(去掉多余空格和文本字符计算hash值)

  • Response: 总的响应时间。

  • time: 该查询在本次分析中总的时间占比。

  • calls: 执行次数,即本次分析总共有多少条这种类型的查询语句。

  • R/Call: 平均每次执行的响应时间。

  • V/M:响应时间Variance-to-mean的比率

  • Item : 查询对象

这一部分显示了最慢的十五种类型的SQL语句。

最后更新于