You need to enable JavaScript to run this app.
机器学习平台

机器学习平台

复制全文
自定义任务
常态化持续火焰图
复制全文
常态化持续火焰图

功能入口
  1. 在「资源组」中创建资源组时,可以开启常态化持续火焰图。
  2. 在「自定义任务」中创建自定义任务时,可以开启常态化持续火焰图。任务详情页面会新增「常态化持续火焰图」页签,功能包括:「时序分析」、「统计分析」和「堆栈详情分析」。
  3. 在「在线服务」中创建服务时开启,功能与自定义任务中相同。

功能介绍

时序分析

提供了所选区间内的CPU和重传相关数据的变化曲线以及常见异常事件,并提供相关筛选和时间区间选择用于细粒度的分析

CPU 利用率:使用的核心 / 总核心数
CPU-内核态占比:内核态函数使用的核心数 / 使用的核心数
CPU-irqoff占比:IRQOFF使用的核心数 / 使用的核心数
...

基础交互

  • 可以双指/滚轴控制折线图的缩略,单击不松手左右移动用于时间轴的滑动
  • 鼠标hover至图上会显示相关指标

异常事件分析

点击某一个事件可以锁定相关时间段/时间点的火焰图,并自动筛选相关的堆栈;如果打开了左侧的「异常事件」,也会自动将对应的事件展开

兴趣时间点/区间分析

默认的时间区间大小为1s,可根据自己的实际情况去调整

调整时间点/区间大小

右上角「时间窗口大小」可以调整交互的时间区间大小,选择「1s」时则为时间点。

选择兴趣时间点/区间

默认跳转至「CPU 利用率P99最大」时间点/区间

  • 在折线图上某个时间轴上进行点击,则选定相对应时间点/区间
  • 控制键盘「⬅️」「➡️」切换至同大小邻近时间点/区间
  • 点击事件时序中的某一个事件

数据筛选[支持堆栈、binary等多维度筛选]

在「时序分析」模块的筛选是全局筛选,会影响到下面全部模块的数据

  • 当检测到相关异常时,可在「异常提示」处根据提示快速选择筛选条件
  • 在「CPU利用率筛选」和「重传筛选」处选择相应的筛选项

Image
Image

  • 特别的:如果是想要筛选复杂的堆栈pattern,比如堆栈的起点需要是特定函数,但是由于原始堆栈数据的第一层都是元信息,并不是火焰图中看到的处理后的信息(binary comm、pid等),筛选起来会不方便,提供以下一些pattern例子

火焰图的原始堆栈数据是由;拼接函数栈帧的字符串 => a;b;c;d;e,其中a为元信息(binary comm、pid等),bcde等则是函数栈帧

  • 我想要筛选满足 cudaLaunchKernel -> (任意调用) -> pthread_mutex_lock 的堆栈 => cudaLaunchKernel.*pthread_mutex_lock
  • 我想要筛选满足 元信息 -> cudaLaunchKernel -> (任意调用) -> pthread_mutex_lock的堆栈 => ^[^;]*;cudaLaunchKernel.*pthread_mutex_lock

统计分析

CPU概览分析

展示所选时间区间/节点中,binary comm统计、CPU核心统计、Pod首次拉起时间三种统计分析的结果

数据筛选[支持堆栈、binary等多维度筛选]

  • 在「CPU利用率筛选」和「重传筛选」处选择相应的筛选项
  • 可在图形元素中直接点击进行筛选
  • 提供用「应用至」选项,可以将筛选条件应用到「时序分析」或「堆栈详情分析」中

Image

Image

binary comm统计

分为使用核数统计与pid数量统计,提供柱状图和表格两种形式便于比较不同binary comm之间的差异,通过该功能可以快速定位使用核数较多或pid数量异常的binary

cpu核心统计

展示了不同cpu核心的负载情况,以及内核态占比等,支持选择不同的颜色映射指标,颜色越深达标该指标比例越大,可用于查看是否存在单核负载过大的问题等

POD首次拉起统计
展示所选时间区间内首次出现在整个采集区间内的pod名称,用于排查由于Pod拉起造成的相关问题

网络概览分析

数据筛选

在「三元组筛选」中可以针对源Port、目的IP和目的Port进行筛选

重传概览

提供重传相关指标的统计信息,并可通过筛选、自定义参数配置以及聚合进行进一步的分析

影响程度是什么?

单纯看不同RTT耗时区间的重传数量分布不能直观看到其影响程度,因此根据重传数量 * 自定义值(一般为区间中位数)来计算影响程度,其中「自定义值」可以在「自定义影响程度」中配置不同区间的预设值。

等其他分析

根据网络相关数据采集的丰富程度,也会有其他数据的统计分析页面,交互方式与含义与重传概览差别不大

堆栈详情分析

函数搜索

支持多种模式的函数搜索(具体可以看页面上的提示),输入关键词后则可以在火焰图中看到绿色的匹配栈帧,以及右上方或左上方的匹配比例,匹配比例不会重复计算同一个调用栈上的栈帧。

显示标签

相当于上一版本火焰图展示中的 binary/进程/线程聚合

即火焰图中栈底栈帧展示的元信息,默认只显示binary comm,可根据自己的需求选择需要显示的信息。并且可以通过拖拽调整显示的顺序,结合「堆叠展示聚合标签」,可以将多标签堆叠展示。

Image

Image

数据筛选[支持堆栈、binary等多维度筛选]

支持全套的火焰图元信息和函数的筛选,在栈帧比例较少时的场景中,可以通过这个方式筛选栈帧关键词,只看关键栈帧相关的堆栈。

Image

火焰图/函数关系图/栈顶函数表格

通过以下选项去控制栈顶函数表格的显示,以及火焰图和函数关系图的切换
Image
Image

函数关系图:节点及边筛选交互及原理

为减少展示的节点和边的数量,会默认裁剪掉:

  • 函数栈顶样本数低于总样本数3%的节点,且会顺着栈不断回溯裁剪
  • 函数关系资源消耗数低于总样本数1%的调用栈相关的边

可通过页面上的以下交互按钮实现自定义裁剪:

函数关系图:节点及边样式说明

https://github.com/google/pprof/blob/main/doc/README.md

  • 节点颜色
    • 函数栈顶样本数较大的节点颜色越深(红)
    • 函数栈顶样本数较小的节点颜色越淡(灰)
  • 节点字体大小
    • 函数栈顶样本数越大字体越大
    • 函数栈顶样本数越小字体越小
  • 边的粗细
    • 资源消耗越大边越
    • 资源消耗越小边越
  • 边的颜色
    • 资源消耗较大的节点颜色越深(红)
    • 资源消耗较小的节点颜色越淡(灰)
  • 函数名称
    • 函数名称在节点上的展示会根据函数语言风格进行缩减,鼠标移至函数后可查看全名

显示配置

只看内核态函数

去掉用户态函数,只展示内核态相关的栈帧

忽略CPU信息

存在部分栈帧如:<# IRQOFF SAMPLE ON CPU 128 #>,导致火焰图看起来很“散”,使用该选项后则可以把类似的栈帧中CPU ID的信息给聚合,在这个案例下会被处理为:<# IRQOFF SAMPLE #>

数据下载:perf script文件/火焰图/栈顶函数/火焰图HTML

根据「渲染类型」和任务类型的不同,会有不同的下载选项
Image
Image

最近更新时间:2026.03.16 14:25:17
这个页面对您有帮助吗?
有用
有用
无用
无用