mysql5.6 pt-query-digest_pt-query-digest安装及分析

slow log 设置:

cat my.cnf

# For advice on how to change settings please see

# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

[mysqld]

#skip-grant-tables

# Remove leading # and set to the amount of RAM for the most important data

# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging

# changes to the binary log between backups.

# log_bin

log_bin=mysql-bin

slow_query_log=on

long_query_time=1

#long_query_time = 1

slow_query_log = 1

slow_query_log_file = slow.log

************************************************************

mysql查看:

mysql> show variables like "%query%";

+------------------------------+----------+

| Variable_name                | Value    |

+------------------------------+----------+

| binlog_rows_query_log_events | OFF      |

| ft_query_expansion_limit     | 20       |

| have_query_cache             | YES      |

| long_query_time              | 1.000000 |

| query_alloc_block_size       | 8192     |

| query_cache_limit            | 1048576  |

| query_cache_min_res_unit     | 4096     |

| query_cache_size             | 1048576  |

| query_cache_type             | OFF      |

| query_cache_wlock_invalidate | OFF      |

| query_prealloc_size          | 8192     |

| slow_query_log               | ON       |

| slow_query_log_file          | slow.log |

+------------------------------+----------+

13 rows in set (0.00 sec)

pt-query-digest:分析

常用选项:  —create-review-table     当使用—review参数,把分析结果输出到表中

—create-history-table     但是用—history参数,把分析结果输出到表中

—filter     对输入的慢查询按指定的字符串进行匹配过滤后,在进行分析

—limit     限制输出结果百分比或数量,默认值是20,即将最慢的20条语句输出

—host     HostName

—user     用户名

—password     密码

—history     将分析结果保存到表中,分析结果比较详细

—review      将分析结果保存到表中

—output     分析结果输出类型

—since     从什么时间开始分析,值为字符串

—until     截止时间,配合since一起分析

分析结果:

其中:

Overall:总共有多少条查询

unique:唯一查询数量

Time range:查询执行的时间范围

total:总计

min:最小

max:最大

avg:平均

95%:95%的查询时间,重点分析

median:中位数,把所有值从小到大排列,位置位于中间那个数

详细的分析结果:

Response:总的响应时间

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

Calls:执行次数

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

Item:查询对象

每一条查询的详细分析结果:

ID:查询的ID号,和上图的Query ID对应

Databases: 数据库名

Users:执行的用户

Query_time distribution:查询的时间分布(此图说明,查询几乎都在1ms-10ms之间)

Tables:查询涉及到的表

EXPLAIN:SQL语句

pt-query-digest安装:

yum -y install perl perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes

*********

rpm包安装:

rpm -ivh percona-toolkit-2.1.7-1.noarch.rpm

warning: percona-toolkit-2.1.7-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY

Preparing...                ########################################### [100%]

1:percona-toolkit        ########################################### [100%]

使用pt-query-digest分析满查询输出结果:

pt-query-digest slow.log

# 450ms user time, 60ms system time, 23.30M rss, 197.64M vsz

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

# Current date: Sat Aug  2 17:33:05 2014

工具执行时间

# Hostname: cj149

运行分析工具的主机名

# Files: slow.log

被分析的文件名

# Overall: 6 total, 1 unique, 0.06 QPS, 0.24x concurrency ________________

语句总数量,唯一的语句数量,QPS,并发数

# Time range: 2014-08-02 17:05:48 to 17:07:30

日志记录的时间范围

# Attribute          total     min     max     avg     95%  stddev  median

属性总计最小最大平均95%      标准         中等

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

# Exec time            24s      3s      6s      4s      6s      1s      4s

语句执行时间

# Lock time              0       0       0       0       0       0       0

锁占用时间

# Rows sent              6       1       1       1       1       0       1

发送到客户端的行数

# Rows examine           0       0       0       0       0       0       0

select语句扫描行数

# Query size            90      15      15      15      15       0      15

查询的字符数

# Profile

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

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

#    1 0xF9A57DD5A41825CA 24.0022 100.0%     6 4.0004 0.33  0.31 SELECT

Rank:所有语句的排名,默认按查询时间降序排列,通过--order-by指定

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

Response time:响应时间,占所有响应时间的百分比

Calls:查询执行次数

R/Call:平均响应时间

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

Item:查询语句一部分

每条查询语句的分析:

# Query 1: 0.06 QPS, 0.24x concurrency, ID 0xF9A57DD5A41825CA at byte 1151

# This item is included in the report because it matches --limit.

# Scores: Apdex = 0.33 [1.0]*, V/M = 0.31

# Query_time sparkline: |      ^ |

# Time range: 2014-08-02 17:05:48 to 17:07:30

# Attribute    pct   total     min     max     avg     95%  stddev  median

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

# Count        100       6

# Exec time    100     24s      3s      6s      4s      6s      1s      4s

# Lock time      0       0       0       0       0       0       0       0

# Rows sent    100       6       1       1       1       1       0       1

# Rows examine   0       0       0       0       0       0       0       0

# Query size   100      90      15      15      15      15       0      15

# String:

# Hosts        localhost

# Users        root

# Query_time distribution

#   1us

#  10us

# 100us

#   1ms

#  10ms

# 100ms

#    1s  ################################################################

#  10s+

# EXPLAIN /*!50100 PARTITIONS*/

select sleep(6)G

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql的执行效率_数据库执行效率的对比测试

今天看了一篇很有意思的文章,对比数据库和普通编程语言的效率测试,测试的语言分别是mysql的存储过程,oracle plsql和perl.测试机器是同一台机器上,测试标准是计算100万次的cos函数oracle代码create or replace procedure oraclesp…

linux修改python版本修改哪个配置文件_linux安装python修改默认python版本方法

linux默认是安装了python,默认是安装python2.6.6,可能安装的版本是不能符合我们需要的python要求的。我们需要重新安装python的版本,今天演示一下安装python3首先下载一个 wget 文件的地址 执行命令进行下载下载完成以后进行解压&#xff…

java算法的递归问题设计_java算法-递归算法思想

递归算法是跟常见的算法思想。使用递归算法,往往可以简化代码编写,提高程序的可读性。但是,不适合的递归往往导致程序的执行效率变低。一、递归算法基本思想递归算法即在程序中不断反复调用自身来叨叨求解问题的方法。此处的重点是调用自身&a…

delstr函数python_Python Day26:多态、封装、内置函数:__str__、__del__、反射(反省)、动态导入模块...

## 多态pythonOOP中标准解释:多个不同类型对象,可以响应同一个方法,并产生不同结果,即为多态多态好处:只要知道基类使用方法即可,不需要关心具体哪一个类的对象实现的,以不变应万变,提高灵活性/扩展性多态,一般都需要一个管理多态的方法,方法的函数就是类的对象,在方法中通过点…

java8用什么tomcat_Tomcat8+JDK8安装与配置

一,系统配置1.操作系统:win10 64位2.tomcat版本:Tomcat8 64位3.Java版本:JDK8 64位二,软件下载下载到本地后直接打开安装,修改存储目录,如图:2.2 Tomcat8下载,官网地址&…

逻辑回归python正则化 选择参数_吴恩达机器学习笔记(三)——正则化(Regularization)...

1.过拟合的问题(Over-fitting)如果我们有非常多的特征,我们通过学习得到的假设可能能够非常好地适应训练集(代价函数可能几乎为0),但是可能会不能推广到新的数据。(1)下图是一个回归问题的例子:第一个模型是一个线性模型,欠拟合&a…

Java简单记事本设计实验报告_基于JAVA的记事本设计报告.doc

基于JAVA的记事本设计报告华北科技学院计算机系综合性实验报告PAGE第 PAGE 11 页XX学校计算机系综合性实验实 验 报 告课程名称 Java程序设计实验学期 至 学年 第 学期学生所在系部 计算机系年级 专业班级学生姓名 学号任课教师实验成绩计算机系制《 Java程序设计》课程综合性实…

谷歌离开游览器不触发_谷歌游览器

谷歌浏览器不错,可保存不同的账户,互相不干扰。有2个账号,工作账号和个人账号,泾渭分明,不会打架,管理账号。总经理管理公司人员,厂长管理工人,业务员要管理自己账号,管理…

java scanner nextlin_java – Scanner nextLine()偶尔会跳过输入

让我猜一下 – 你没有显示使用上面尝试获取lastName的扫描器的代码.在那次尝试中,你没有处理行尾令牌,所以它是悬空的,只是被你试图获取lastName的nextLine()调用吞噬.例如,如果你有这个:Scanner keyboard new Scanner(System.in);System.out.print("Enter a …

python office库_python库编程.os平台.office平台

1.库安装Python库 PyPI – Python Package Index :https://pypi.python.org/(1) Python库的自定义安装:找到库所在网站,根据指示下载安装安装numpy库库所在网站:http://www.numpy.org/下载地址:http://sourceforge.ne…

java编译系统资源不足_Ant编译项目资源不足

今天用ant编译项目出现 [javac] 系统资源不足。的错误,如下Buildfile: build.xml-compile:[javac] Compiling 919 source files to E:\DSHR\dshr\WebContent\WEB-INF\classes[javac][javac][javac] 系统资源不足。[javac] 有关详细信息,请参阅以下堆栈追…

java线程三部分_java 多线程三

注意到 java 多线程一 中 MyThread2 运行结果出现0、-1,那是因为在操作共享数据时没有加锁导致。加锁的方式:1、同步方法2、同步代码块3、锁读过 java.util.concurrent 集合源码就知道:HashMap:public V put(K key, V value) {...}Hashtable:…

python简述定义函数的规则_Python的函数定义

有经验的程序员往往将功能较为独立、且可以被重复使用的代码块封装成函数,可以有效提高代码的模块化、解耦性和重复利用率。我们前面用到的print()函数就是Python的内建函数,我们也可以根据Python给我们提供的规则进行自定义函数。这里我们用PyCharm来进…

jdk中java_怎样使用JavaJDK中Java?

什么是UDP协议 UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发…

python中table表结构_python中的简易表格prettytable

安装:pip install PrettyTable普通表格from prettytable import PrettyTabletable PrettyTable([编号,云编号,名称,IP地址])table.add_row([1,server01,服务器01,172.16.0.1])table.add_row([2,server02,服务器02,172.16.0.2])table.add_row([3,server03,服务器03,…

java 类型推理_java 11 局部变量类型推断

什么是局部变量类型推断?var javastack "javastack";System.out.println(javastack);大家看出来了,局部变量类型推断就是左边的类型直接使用 var 定义,而不用写具体的类型,编译器能根据右边的表达式自动推断类型&#…

python笨办法_笨办法学Python(十)

习题 10: 那是什么?在习题 9 中我你接触了一些新东西。我让你看到两种让字符串扩展到多行的方法。第一种方法是在月份之间用 \n (back-slash n )隔开。这两个字符的作用是在该位置上放入一个“新行(new line)”字符。使用反斜杠 \ (back-slash) 可以将难打印出来的字…

java什么变量用作英文_Java基础之变量-什么是变量

什么是变量:在计算机语言中用来存储计算结果或表示值如何命名Java变量:如同酒店会给每个房间起个性化的名字一样,程序中的变量也需要用合理的名字进行管理—变量名!变量命名要符合以下规则:首字母必须是大写或小写的英文字母可以用下划线_开头可以用美元…

vue保存图片到手机相册_手机照片误删了怎么找回?这三个方法轻松搞定,亲测有效...

手机照片误删了怎么找回?很多人在使用手机拍照时,都会出现拍好的照片不小心点击了删除等情况,比如去某个地方游玩,或者看到了某个特别的场景拍下来的时候不小心删除了,那就非常可惜了,那么如何找回手机中误…

lsm tree java_BasicTreeUI

方法详细信息createUI public static ComponentUI createUI​(JComponent x)构造一个BasicTreeUI的新实例。参数x - 一个组件结果BasicTreeUI的新实例getHashColor protected Color getHashColor()返回散列颜色。结果哈希颜色setHashColor protected void setHashColor​(Color…