[转帖]systemtap - perf - 火焰图

systemtap,perf,火焰 · 浏览次数 : 0

小编点评

## 火焰图生成框架 **1. Capture stacks** * 捕获所有线程的堆栈信息,以便进行性能分析。 **2. Fold stacks** * 对堆栈信息进行折叠,以减少数据量,加快分析。 **3. flamegraph.pl1. perf** * 使用 Flamegraph.pl1 工具绘制火焰图,可直观地展示程序调用关系。 **性能分析的 profing 和 flamegraph 功能** * perf 提供 prof 和 flamegraph 工具,可以对性能分析进行深入跟踪和分析。 * `prof` 记录程序运行的性能指标,例如 CPU 频率、内存使用等。 * `flamegraph` 工具使用符号来构建火焰图,可用于展示程序调用关系。 **示例** 以下是一个使用 perf 脚本分析程序性能的示例: ``` # 使用 perf script 分析程序性能 # 选项:-g 参数开启调用关系的采样 perf record -i perf.data &> perf.unfold \ &> perf.folded \ > perf.svg ``` **其他** * perf 可以用于生成 svg 图,用于展示火焰图。 * `perf script` 工具可以用于解析 perf.data 文件,并将符号进行折叠。

正文

https://www.cnblogs.com/hixiaowei/p/15580662.html

 

 

0. 火焰图生成框架

  1. Capture stacks

  2. Fold stacks

  3. flamegraph.pl

1. perf

 (13条消息) 性能分析之profiling及火焰图_巷中人的博客-CSDN博客

复制代码
perf火焰图分析程序性能
perf record -e cpu-clock -g -p <pid>
-g 选项是告诉perf record额外记录函数的调
用关系
-e cpu-clock 指perf record监控的指标为cpu
周期
-p指定需要record的迸程pid
程序运行完之后,perf record会生成一个名为
pert.data的文件,如果之前已有,那么之前的
perf.data文件会被覆盖
克隆Flame Graph项目 (位于GitHub上)
用perf script工具对perf.data进行解析
perf script -i perf.data &> perf.unfold
将perf.unfold中的符号进行折叠
./stackcollapse-perf.pl perf.unfold &> perf.
folded
最后生成svg图:
./perf.folded > perf.svg
复制代码

 2. perf的安装和使用

我们还经常为 perf top 和 perf record 加上 -g 参数,开启调用关系的采样,方便我们根据调用链来分析性能问题。

 

用一个例子来演示会更加清晰

与[转帖]systemtap - perf - 火焰图相似的内容:

[转帖]systemtap - perf - 火焰图

https://www.cnblogs.com/hixiaowei/p/15580662.html 0. 火焰图生成框架 1. Capture stacks 2. Fold stacks 3. flamegraph.pl 1. perf (13条消息) 性能分析之profiling及火焰图_巷中人的

[转帖]使用perf生成Flame Graph(火焰图)

https://www.cnblogs.com/keanuyaoo/p/3313378.html 具体的步骤参见这里: 《flame graph:图形化perf call stack数据的小工具》 使用SystemTap脚本制作火焰图,内存较少时,分配存储采样的数组可能失败,需要编写脚本,还要安装k

[转帖]Systemtap的另类用法

November 10th, 2010Yu Feng 原创文章,转载请注明: 转载自系统技术非业余研究 本文链接地址: Systemtap的另类用法 通常我们在做内核编程的时候,会用到内核的数据结构,比如说textsearch提供了几种算法用于支付串查找。在用于正式的项目前,我们会希望考察下他的用法

[转帖]Systemtap 用法

https://www.jianshu.com/p/fb4dde8baff4 霸爷博客,干货满满。有两篇文章现在还记得,《Linux下如何知道文件被哪个进程写》和《巧用Systemtap注入延迟模拟IO设备抖动》,周末突然想起来,发现能看懂了:) 什么是 systemtap Systemtap is

[转帖] SystemTap Beginners Guide -network

SystemTap Beginners Guide Next ⁠Chapter 5. Useful SystemTap Scripts 5.1. Network5.1.1. Network Profiling5.1.2. Tracing Functions Called in Network Soc

[转帖]SystemTap Beginners Guide -disk

SystemTap Beginners Guide Next ⁠5.2. Disk The following sections showcase scripts that monitor disk and I/O activity. ⁠5.2.1. Summarizing Disk Read/Wr

[转帖]SystemTap Beginners Guide -profiling

Next ⁠5.3. Profiling The following sections showcase scripts that profile kernel activity by monitoring function calls. ⁠5.3.1. Counting Function Call

[转帖]Systemtap系列之语法专辑

1. 常用技巧 systemtap可以实现交叉编译: 编译可执行模块如下: stap -r kernel_version script -m module_name 运行命令如下: staprun module_name.ko stap命令会读取脚本的指令,并翻译成C代码,编译成内核模块加载到内核。

[转帖]systemtap 之 基础命令

https://phpor.net/blog/post/3661 示例1: 通过 -e 选项直接执行probe,如: 1 stap -ve 'probe kernel.function("do_fork") { printf("%-25s %-10d 0x%-x\n", execname(), pi

[转帖]巧用Systemtap注入延迟模拟IO设备抖动

http://blog.yufeng.info/archives/2935 原创文章,转载请注明: 转载自系统技术非业余研究 本文链接地址: 巧用Systemtap注入延迟模拟IO设备抖动 当我们的IO密集型的应用怀疑设备的IO抖动,比如说一段时间的wait时间过长导致性能或其他疑难问题的时候,这个