概述
最近通过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文件。
最后
以上就是直率泥猴桃为你收集整理的生成RGW的火焰图的全部内容,希望文章能够帮你解决生成RGW的火焰图所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复