Red Hat Training

A Red Hat training course is available for RHEL 8

27.4. 解释 flamegraphs

flamegraph 的每个框代表堆栈中的不同功能。y 轴显示堆栈在顶部框的深度,每个堆栈都是实际处于 CPU 的函数,以及它处于ancestry 下的一切。x 轴显示抽样的 call-graph 数据的填充。

给定行中堆栈的子项会根据在 x 轴之间以降序排列的样本数量显示,x 轴并不代表传递时间。更广泛的一个单独框是,在数据被抽样时,它更频繁地处于 CPU 或一个 on-CPU ancestry 的一部分。

流程

  • 要显示之前未显示的功能名称,进一步调查数据,点 flamegraph 中的方框,将缩放到指定位置的堆栈中:

    zoomed in flamegraph

  • 要返回 flamegraph 的默认视图,请点 Reset Zoom
重要

代表用户空间功能的框可以在 flamegraphs 中被标记为 Unknown,因为函数的二进制文件被剥离。必须安装可执行文件的 debuginfo 软件包,或者如果可执行文件是本地开发的应用程序,则必须使用调试信息进行编译。使用 GCC 中的 -g 选项,在这种情形中显示功能名称或符号。

flamegraph