Percona-Tookit工具包之pt-query-digest
Usage: pt-query-digest [OPTIONS] [FILES] [DSN]
Parameters introduce
--limit -- Limit the output conents by count(defualt ) or percentage(default %).
--type -- Indicate a type(default "slowlog",else value is "genlog","binlog","tcpdump",etc.) you want to anaylze.
--processlist -- Analyze from "show processlist" result from specific host(need to input DSN).
--create-history-table -- Create a table to record infomation if use "--history"(default "true").
--create-review-table -- Create a table to record infomation if use "--review"(default "true").
--history -- Save query metrics(such as query time) into a given table which can be checked incremental difference later.
--review -- Save query classes into a given table for later review.It don't report same kind of class.
--output -- Specify the format of query result(default "report").
--since -- Give a specific time with time format of beginning.
--until -- Give a specific time with time format of end.
--group-by -- According to the atrribute of envents to group by(default "figerprint",else value is "tables"&"distill").
--order-by -- According to the atrribute of envents to sort by(default "Query_time:sum").
(root@localhost mysql3306.sock)[(none)]::>show variables like '%slow%';
+---------------------------+----------+
| Variable_name | Value |
+---------------------------+----------+
| log_slow_admin_statements | OFF |
| log_slow_slave_statements | ON |
| slow_launch_time | |
| slow_query_log | ON |
| slow_query_log_file | slow.log |
+---------------------------+----------+
rows in set (0.00 sec) (root@localhost mysql3306.sock)[(none)]::>show variables like '%long_query_time%';
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 1.000000 |
+-----------------+----------+
row in set (0.00 sec) (root@localhost mysql3306.sock)[(none)]::>show variables like '%log_output%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output | FILE |
+---------------+-------+
row in set (0.00 sec)
Execute a slow query.
(root@localhost mysql3306.sock)[(none)]::>select sleep();
+-----------+
| sleep() |
+-----------+
| |
+-----------+
row in set ( min 0.01 sec)
Check slow log for information of above slow query.
[root@zlm2 :: /data/mysql/mysql3306/data]
#cat slow.log # Time: --23T07::.891778Z
# User@Host: root[root] @ localhost [] Id:
# Query_time: 60.001239 Lock_time: 0.000000 Rows_sent: Rows_examined:
SET timestamp=;
select sleep();
Use pt-query-digest analyze slow log file for more details.
[root@zlm2 :: ~]
#pt-query-digest /data/mysql/mysql3306/data/slow.log # No events processed. -- Only if the slow query has finished,there will be a result of report. [root@zlm2 :: ~]
#pt-query-digest /data/mysql/mysql3306/data/slow.log # 180ms user time, system time, 25.59M rss, 221.68M vsz
# Current date: Sat Jun ::
# Hostname: zlm2
# Files: /data/mysql/mysql3306/data/slow.log
# Overall: total, unique, QPS, 0x concurrency ______________________
# Time range: all events occurred at --23T07::
# Attribute total min max avg % stddev median
# ============ ======= ======= ======= ======= ======= ======= =======
# Exec time 60s 60s 60s 60s 60s 60s
# Lock time
# Rows sent
# Rows examine
# Query size # Profile
# Rank Query ID Response time Calls R/Call V/M Item
# ==== ================== ============== ===== ======= ===== ======
# 0xF9A57DD5A41825CA 60.0012 100.0% 60.0012 0.00 SELECT # Query : QPS, 0x concurrency, ID 0xF9A57DD5A41825CA at byte ________
# This item is included in the report because it matches --limit.
# Scores: V/M = 0.00
# Time range: all events occurred at --23T07::
# Attribute pct total min max avg % stddev median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count
# Exec time 60s 60s 60s 60s 60s 60s
# Lock time
# Rows sent
# Rows examine
# Query size
# String:
# Hosts localhost
# Users root
# Query_time distribution
# 1us
# 10us
# 100us
# 1ms
# 10ms
# 100ms
# 1s
# 10s+ ################################################################
# EXPLAIN /*!50100 PARTITIONS*/
select sleep()\G ###All the meaning of above is self-explanatory,you can check official document for details.###
pt-query-digest --type=genlog /path/zlm2.log > report1.log
2.Analyze binlog.
mysqlbinlog -vv --base64-output=decode-rows /path/mysql-bin. > mysql-bin000010.sql
pt-query-digest --type=binlog /path/mysql-bin000001.sql > report2.log
3.Analyze rawlog(It's a general txt file which contains SQL statement).
echo "select sleep(10);">rawlog.log pt-query-digest --type=rawlog rawlog.log > report3.log
4.Analyze processlist(DSN is indispensable).
pt-query-digest --processlist h=192.168.1.101,P=,u=repl,p=repl4slave > report4.log -- If connection failed,it will try every second.
5.Analyze tcpdump.
tcpdump -s -x -nn -q -tttt -i any -c port > tcpdump.log
pt-query-digest --type=tcpdump tcpdump.log > report5.log
6.Analyze slow log since last 24 hours.
pt-query-digest --since=24h slow.log > report6.log
7.Analyze slow log since time until time.
pt-query-digest --since '2018-06-23 08:30:00' --until '2018-06-23 10:30:00' slow.log > report7.log
8.Analyze slow log into view table("query_review" table will be created if not specify "-t") of remote host.
pt-query-digest --review h=192.168.1.102,P=,u=repl,p=repl4slave,D=zlm,t=query_review slow.log > report8.log
9.Analyze slow log into history table("query_history" table will be created like above) of remote host.
pt-query-digest --review h=192.168.1.102,P=,u=repl,p=repl4slave,D=zlm,t=query_history slow.log > report9.log
- There're still some advanced useages I've not demonstrated such as "--group-by","--order-by" and "--filter",etc.
- pt-query-digest is extraordinarily useful when doing performance diagnosis by different ways.
- It's recommended to analyze logs on another node(maybe slave) instead of master to reduce consumption of CPU,Memory,IO,etc.
- pt-query-digest can help you to find out the specific slow quries.Afterwards you can use MySQL profiling("set profiling=1;" then "show profiles;") to survey the perticular resources which are tremendously consumed.
Percona-Tookit工具包之pt-query-digest的更多相关文章
- [hdu 6191] Query on A Tree
Query on A Tree Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Othe ...
- Mysql: pt-table-checksum 和 pt-table-sync 检查主从一致性,实验过程
一.安装 percona 包 1.安装仓库的包 https://www.percona.com/doc/percona-repo-config/yum-repo.html sudo yum insta ...
- MySQL ProxySQL读写分离使用初探
目的 在美团点评DBProxy读写分离使用说明文章中已经说明了使用目的,本文介绍ProxySQL的使用方法以及和DBProxy的性能差异.具体的介绍可以看官网的相关说明,并且这个中间件也是percon ...
- ProxySQL 配置详解及读写分离(+GTID)等功能说明 (完整篇)
ProxySQL是灵活强大的MySQL代理层, 是一个能实实在在用在生产环境的MySQL中间件,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行 cache,支持动态加载配 ...
- Linux后台开发工具箱
https://files-cdn.cnblogs.com/files/aquester/Linux后台开发工具箱.pdf 目录 目录 1 1. 前言 3 2. 脚本类工具 3 2.1. sed命令- ...
- MySQL 使用pt-table-checksum 检查主从数据一致性 (实例转)
1.基本环境: Mysql版本:5.6.12-log Percona-toolkit:2.2.18 Linux:centos6.5 2.安装 源码安装: # 一些依赖包 yum install per ...
- Linux后台开发工具箱-葵花宝典
Linux后台开发工具箱-葵花宝典 一见 2016/11/4 目录 目录 1 1. 前言 4 2. 脚本类工具 4 2.1. 双引号和单引号 4 2.2. 取脚本完整文件路径 5 2.3. 环境变量和 ...
- 推荐几款MySQL相关工具
前言: 随着互联网技术的不断发展, MySQL 相关生态也越来越完善,越来越多的工具涌现出来.一些公司或个人纷纷开源出一些不错的工具,本篇文章主要介绍几款 MySQL 相关实用工具.提醒下,这里并不介 ...
- pt-table-checksum
pt-table-checksum是percona公司提供的一个用于在线比对主从数据一致性的工具. 实现原理 将一张大表分成多个chunk,每次针对一个chunk进行校验,同时将校验的结果通过REPL ...
- [知识库分享系列] 二、.NET(ASP.NET)
最近时间又有了新的想法,当我用新的眼光在整理一些很老的知识库时,发现很多东西都已经过时,或者是很基础很零碎的知识点.如果分享出去大家不看倒好,更担心的是会误人子弟,但为了保证此系列的完整,还是选择分享 ...
随机推荐
- 我为什么不用Django而用Flask?
前言 对于初学者来说,找到一个好的框架来学习或者项目开发都是非常有必要的,而当你有一定开发经验后,你应该选择适合当前业务需要的框架.我这里并不想探讨哪个框架好哪个不好,这个永恒的话题就跟探讨“世界上哪 ...
- C++中char*与wchar_t*之间的转换
http://blog.163.com/tianshi_17th/blog/static/4856418920085209414977/ 关于C++中的char*与wchar_t*这两种类型的相互转换 ...
- tcp/ip 调优示例
# Kernel sysctl configuration file for Linux # # Version 1.12 - 2015-09-30 # Michiel Klaver - IT Pro ...
- 实现两个N×N矩阵的乘法,矩阵由一维数组表示
此题的关键在于找到矩阵乘法的不变式! 例如: 矩阵a × 矩阵b = 矩阵ab 1 2 5 6 × 3 4 7 8 显然 ab[0] = a[0] * b[0] + a[1] * b[2] ab[1] ...
- NO.001-2018.02.06《木兰花·拟古决绝词柬友》清代:纳兰性德
木兰花·拟古决绝词柬友原文.翻译及赏析_纳兰性德_古诗文网 木兰花·拟古决绝词柬友 清代:纳兰性德 人生若只如初见,何事秋风悲画扇.与意中人相处应当总像刚刚相识的时候,是那样地甜蜜,那样地温馨,那 ...
- oozie 完整流程实例
Oozie概述: Oozie是一个基于Hadoop工作流引擎,也可以称为调度器,它以xml的形式写调度流程,可以调度mr,pig,hive,shell,jar,spark等等.在实际工作中,遇到对数据 ...
- Java里面String的编码问题
Java里面内置字符串全部是utf-16编码,详细的编码方式看这里 import java.nio.charset.Charset; import java.util.Arrays; import j ...
- 关于表空间、Schema和用户
数据库这个柜子 解释数据库.表空间.数据文件.表.数据的最好办法就是想象一个装满东西的柜子. 从物理方面来讲:数据库是柜子,柜中的抽屉是表空间,抽屉中的文件夹是数据文件,文件夹中的纸是表,写在纸上的信 ...
- LA 3415 保守的老师
题目链接:https://vjudge.net/contest/161820#problem/E 题意: 有一些同学,要从中选出一些同学来,人数尽量多,但是,两两之间要满足至少一个条件(身高差> ...
- hihocoder 后缀自动机四·重复旋律6
题目 对于\(k\in[1,n]\)求出长度为\(k\)的子串出现次数最多的出现了多少次 我直到现在才理解后缀自动机上的子树和是什么意思 非常显然的一点是 \[endpos(link(u))⊇endp ...