percona 性能分析
[](https://www.cnblogs.com/zishengY/p/6852280.html)
apt-get install percona-toolkit
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum list | grep percona-toolkit
yum install percona-toolkit
最新版 https://www.percona.com/downloads/percona-toolkit/LATEST/
pt-query-digest --help
http://www.percona.com/doc/percona-toolkit/2.1/pt-query-digest.html
pt-query-digest /var/log/mysql/slow.log > slow.txt
pt-query-digest --processlist h=localhost --print --no-report
CREATE DATABASE percona;
use percona;
wget https://nodeload.github.com/kormoc/Query-Digest-UI/zip/master
unzip master
pt-query-digest使用方法介绍
直接分析慢查询文件
pt-query-digest slow.log > slow_report.log
分析binlog
mysqlbinlog mysql-bin.000093 > mysql-bin000093.sql
pt-query-digest --type=binlog mysql-bin000093.sql > slow_report10.log
分析general log
pt-query-digest --type=genlog localhost.log > slow_report11.log
通过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
分析最近12小时内的查询
pt-query-digest --since=12h slow.log > slow_report2.log
分析指定时间范围内的查询
pt-query-digest slow.log --since '2016-10-17 09:30:00' --until '2016-10-17 10:00:00' > > slow_report3.log
分析指含有select语句的慢查询
pt-query-digest--filter '$event->{fingerprint} =~ m/^select/i' slow.log> slow_report4.log
针对某个用户的慢查询
pt-query-digest--filter '($event->{user} || "") =~ m/^root/i' slow.log> slow_report5.log
查询所有所有的全表扫描或full join的慢查询
pt-query-digest--filter '(($event->{Full_scan} || "") eq "yes") ||(($event->{Full_join} || "") eq "yes")' slow.log> slow_report6.log
把查询保存到query_review表
pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_review--create-review-table slow.log
把查询保存到query_history表
pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_ history--create-review-table slow.log_20161101
pt-query-digest --user=root –password=abc123--review h=localhost,D=test,t=query_history--create-review-table slow.log_20161102
有的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 2.2新增命令|
|配置类|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 2.2新增命令|
| |pt-ioprofile|查询进程IO并打印一个IO活动表|pt 2.2新增命令|
|实用类|pt-archiver|将表数据归档到另一个表或文件中
| |pt-find|查找表并执行命令
| |pt-kill|Kill掉符合条件的sql|常用命令|pt-align|对齐其他工具的输出|pt 2.2新增命令
| |pt-fingerprint|将查询转成密文|pt 2.2新增命令