博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成RGW的火焰图
阅读量:4026 次
发布时间:2019-05-24

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

最近通过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大神的火焰图生成程序,并进入对应的目录。

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

6. 生成火焰图

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

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

你可能感兴趣的文章
Vue-子组件改变父级组件的信息
查看>>
Python自动化之pytest常用插件
查看>>
Python自动化之pytest框架使用详解
查看>>
【正则表达式】以个人的理解帮助大家认识正则表达式
查看>>
性能调优之iostat命令详解
查看>>
性能调优之iftop命令详解
查看>>
非关系型数据库(nosql)介绍
查看>>
移动端自动化测试-Windows-Android-Appium环境搭建
查看>>
Xpath使用方法
查看>>
移动端自动化测试-Mac-IOS-Appium环境搭建
查看>>
Selenium之前世今生
查看>>
Selenium-WebDriverApi接口详解
查看>>
Selenium-ActionChains Api接口详解
查看>>
Selenium-Switch与SelectApi接口详解
查看>>
Selenium-Css Selector使用方法
查看>>
Linux常用统计命令之wc
查看>>
测试必会之 Linux 三剑客之 sed
查看>>
Socket请求XML客户端程序
查看>>
Java中数字转大写货币(支持到千亿)
查看>>
Java.nio
查看>>