mysql的perf工具如何使用_MySQL性能分析工具(perf和Flame Graphs)

本文将介绍如何使用perf和Flame Graphs工具对MySQL进行性能分析,这两个工具能够以图形化的形式展现MySQL运行过程中的哪些函数被调用以及调用次数,协助分析MySQL性能瓶颈,为性能优化提供更多的参考依据。

一、安装软件包:

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

flamegraph.svg 示例如下:

b44776a82bd77c761c757ab878ad86a2.png

四、总结:

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值