生成RGW的火焰图

最近通过perf在分析Ceph对象存储RGW的性能,趁机也生成了一个Flame Graph,可以更直观的帮助我们找到RGW I/O各部分的耗时。先上图,生成的图本来是svg格式的(可以用浏览器打开,并且火焰图中每部分都是可以点开,显示对应的函数调用的。但因为无法上传,所以转换成png的了。


是不是逼格很高,火焰图的用途很多,可以生成程序的调用栈并且计算调用栈中每部分的CPU消耗,找到CPU资源消耗最多的点,就基本上是性能问题的所在了。

其实生成方法很简单,大家可以参考以下步骤:

1. 要生成call-graph,必须要安装对应的debuginfo包,这里安装ceph的debuginfo

# yum install ceph-debuginfo
2. 安装perf工具,用来采样数据。perf工具是linux中用于分析性能问题的一大利器,可以针对一个运行着的程序,对系统进行采样,和Solaris中的Dtrace有一拼了。

# yum install perf
3. 对RGW进程进行采用。

# perf record -e cpu-clock --call-graph dwarf -p 17577 -- sleep 30
[ perf record: Woken up 383 times to write data ]
[ perf record: Captured and wrote 99.309 MB perf.data (11924 samples) ]
4. 对采样结果进行整理

# perf script | ./stackcollapse-perf.pl > rgw-perf.out

5. Clone brendangregg大神的火焰图生成程序,并进入对应的目录。

</pre><pre name="code" class="plain"># git clone https://github.com/brendangregg/FlameGraph

6. 生成火焰图

./flamegraph.pl rgw-perf.out > perf-rgw.svg

7. 使用浏览器打开,生成的perf-rgw.svg文件。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值