加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

如何使用linux`perf`工具生成“Off-CPU”配置文件

发布时间:2020-12-13 19:34:34 所属栏目:Linux 来源:网络整理
导读:Brendan D. Gregg(DTrace书的作者)有趣的变种: “Off-CPU” profiling(和 Off-CPU Flame Graph; slides 2013,p112-137)看到,线程或应用程序被阻止(没有被CPU执行,但是等待I / O,pagefault处理程序,或由于CPU资源不足而被排除): This time reveals which co
Brendan D. Gregg(DTrace书的作者)有趣的变种: “Off-CPU” profiling(和 Off-CPU Flame Graph; slides 2013,p112-137)看到,线程或应用程序被阻止(没有被CPU执行,但是等待I / O,pagefault处理程序,或由于CPU资源不足而被排除):

This time reveals which code-paths are blocked and waiting while off-CPU,and for how long exactly. This differs from traditional profiling which often samples the activity of threads at a given interval,and (usually) only examine threads if they are executing work on-CPU.

他还可以将Off-CPU配置文件数据和On-CPU配置文件组合在一起:http://www.brendangregg.com/FlameGraphs/hotcoldflamegraphs.html

Gregg给出的示例使用dtrace,这在Linux操作系统中通常不可用.但是,有一些类似的工具(ktap,systemtap,perf)和perf,因为我认为最广泛的安装基础.通常perf生成的On-CPU配置文件(哪些功能在CPU上执行得更频繁).

>如何将Gregg的Off-CPU示例转换为Linux中的perf性能分析工具?

PS:slides from LISA13,p124中有与Off-CPU火焰记录器的systemtap变体的链接:“Yichun Zhang创建了这些,并在Linux上使用SystemTap收集数据,参见:http://agentzh.org/misc/slides/off-cpu-flame-graphs.pdf”“(CloudFlare Beer Meeting on 23 2013年8月)

解决方法

我发表的perf技术[1]是一个高开销的解决方法,直到perf有BPF支持这样做.

现在,在Linux上生成非CPU火焰图的最低成本方法是在4.6内核(其具有BPF堆栈跟踪支持)以及bcc / BPF.我为它编写了一个工具,offcputime [2],可以使用-f选项来运行“折叠输出”,适用于进入flamegraph.pl.这个offcputime工具在内核内容中执行计时和堆栈计数,并转储一个随后用符号打印的报告.

有一天,我期望perf本身也能够做到这一点:运行一个执行内核计数的BPF程序,并倾倒报告.

在此期间,我们可以使用bcc / BPF.如果由于某种原因,您不能使用bcc,您现在可以使用该offcputime程序并将其写入C.Linux源代码中提供了更复杂的版本,如samples / bpf / offwaketime *.在Linux上使用新的BPF功能,如果有意志,就有办法.

[1] http://www.brendangregg.com/blog/2015-02-26/linux-perf-off-cpu-flame-graph.html

[2] https://github.com/iovisor/bcc/blob/master/tools/offcputime_example.txt

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读