博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
perf mysql_MySQL性能分析工具(perf和Flame Graphs)
阅读量:5322 次
发布时间:2019-06-14

本文共 962 字,大约阅读时间需要 3 分钟。

一、安装软件包:

sudo yum install -y perf

git clone https://github.com/brendangregg/FlameGraph

二、数据采集:

perf 主要用来采集性能数据,Flame Graphs 使用perf采集的数据进行图形化展示,性能数据采集常用的一些命令如下:

1、采集mysqld进程10秒的性能数据。

sudo perf record -a -F 99 -g -p $(pgrep -x mysqld) — sleep 10

2、持续采集mysqld性能数据,直到ctrl+c取消。

sudo perf record -a -F 99 -g -p $(pgrep -x mysqld)

3、采集mysqld从启动到关闭整个生命周期的性能数据,尤其适合采集mysqld刚启动时的性能数据。

sudo perf record -a -F 99 -g — /sbin/mysqld –defaults-file=/etc/my.cnf

4、采集执行某个SQL时的性能数据。

sudo perf record -a -F 99 -g -p $(pgrep -x mysqld) — mysql -e “SELECT * FROM db.table”

三、数据加工:

数据采集完成后,通常会生成一个二进制数据文件perf.data,通过下面的命令将采集的二进制数据进行加工,转换成易于阅读的文本文件,如下:

sudo perf script > perf.script

生成图形化的性能视图:

将perf.script文件作为输入,通过Flame Graphs工具,生成svg格式的性能图形。

~/src/FlameGraph/stackcollapse-perf.pl perf.script | ~/src/FlameGraph/flamegraph.pl > flamegraph.svg

四、总结:

使用perf+Flame Graphs方式,能够从更深层的函数调用上,以图形化的方式看到MySQL是如何执行的,以及具体某个函数执行了多少次,能够更好的看到隐藏在进程之后的具体操作,相对于文本,图形化的展示,更容易被人阅读,也更容易发现性能瓶颈以及相应的优化方向。

转载地址:http://gihhv.baihongyu.com/

你可能感兴趣的文章
Centos7.2正常启动关闭CDH5.16.1
查看>>
Android 监听返回键、HOME键
查看>>
Android ContentProvider的实现
查看>>
sqlserver 各种判断是否存在(表名、函数、存储过程等)
查看>>
给C#学习者的建议 - CLR Via C# 读后感
查看>>
Recover Binary Search Tree
查看>>
Java 实践:生产者与消费者
查看>>
[转]IOCP--Socket IO模型终结篇
查看>>
js 获取视频的第一帧
查看>>
各种正则验证
查看>>
观察者模式(Observer)
查看>>
python中numpy.r_和numpy.c_
查看>>
egret3D与2D混合开发,画布尺寸不一致的问题
查看>>
freebsd 实现 tab 命令 补全 命令 提示
查看>>
struts1和struts2的区别
查看>>
函数之匿名函数
查看>>
shell习题第16题:查用户
查看>>
实验4 [bx]和loop的使用
查看>>
Redis常用命令
查看>>
2018.11.06 bzoj1040: [ZJOI2008]骑士(树形dp)
查看>>