Scheduling analysis 抓取和展示说明

抓取和展示 CPU 调度分析,线程调度分析相关数据。

Scheduling analysis 的抓取

Scheduling analysis 抓取界面配置说明

打开 Scheduling analysis 开关抓取调度分析数据。 GitHub Logo

Scheduling analysis 文件的抓取

点击 Record setting,在 output file path 输入文件名 hiprofiler_dataScheduling.htrace,拖动滚动条设置 buffer size 大小是 64MB,抓取时长是 50s。 GitHub Logo 点击 Trace command,就会根据上面的配置生成抓取命令,点击 Record 抓取,抓取过程中会显示抓取时长。 GitHub Logo

Scheduling analysis 功能介绍

将抓取的文件导入到 smartperf 工具查看。

CPU 频点分析

点击下拉列表框选择 CPU Frequency,可以看到各核 CPU 的各频点持续时长的占比图,以颜色区分各频点。 GitHub Logo 点击 CPU Frequency 饼图,可以跳转到详细信息界面,用饼图和表格来展示某个 CPU 下各频点持续时长的的相关数据。 GitHub Logo

  • No:编号。
    
  • frequency:频率。
    
  • min:最小时长。
    
  • max:最大时长。
    
  • average:平均时长。
    
  • duration:运行总时长。
    
    点击详细页的 CPU Frequency 饼图,可以跳转某个 CPU 下某个频点的运行的线程信息。 GitHub Logo
  • No:编号。
    
  • t_name:线程名。
    
  • tid:线程id。
    
  • p_name:进程名。
    
  • p_pid:进程id。
    
  • duration:运行总时长。
    

CPU Idle 分析

点击下拉列表框选择 CPU Idle,可以看到各 CPU 的 Idle 的时长占比饼图,以颜色区分各 Idle。 GitHub Logo 点击 CPU Idle 饼图,可以跳转到某 CPU 的 idle 分析的详细数据,以饼图和表格的形式展示。 GitHub Logo

  • No:编号。
    
  • idle:idle值。
    
  • min:最小时长。
    
  • max:最大时长。
    
  • average:平均时长。
    
  • duration:运行总时长。
    

CPU Irq 分析

点击下拉列表框选择 CPU Irq,可以看到各 CPU 的 Irq 的时长占比饼图,以颜色区分。 GitHub Logo 点击 CPU Irq 饼图,可以跳转到某 CPU 的 Irq 分析的详细数据,以饼图和表格的形式展示。 GitHub Logo

  • No:编号。
    
  • block:irq的类型。
    
  • name:irp名称。
    
  • min:最小时长。
    
  • max:最大时长。
    
  • average:平均时长。
    
  • duration:运行总时长。
    

CPU 占用率显示

以表格显示各 CPU 的占用率。 GitHub Logo

Top20 线程大中小核占用率

选择 Thread Analysis 标签页,各个 CPU 通过勾选 big 或者 middle 或者 small 来设置 CPU 的分类。 GitHub Logo 各 CPU 勾选好大中小核,点击 Upload 可以跳转到各个线程 CPU 占用率情况的展示页面。 GitHub Logo 如上图所示:

  • 三色柱状图:各个线程CPU的占用率情况,其中以颜色区分占用的大中小核的占用率情况,并以表格的形式展示各个线程的基本信息和大中小核占用率。
    
  • 单色柱状图:分别统计线程在某一个类别(大、中、小)的CPU的占用率,并显示出线程的基本信息和占用率。
    
    表格的字段说明:
  • tid:线程号。
    
  • t_name:线程名。
    
  • pid:进程号。
    
  • p_name:进程名。
    
  • big core:大核占用时长。
    
  • middle core:中核占用时长。
    
  • small core:小核占用时长。
    
  • cpu..(us):运行总时长(..代表cpu号)。
    

单个线程频点分布

点击单个线程频点分布的标签,通过在 Thread Search 选择线程,来展示单个线程的频点分布情况。 GitHub Logo

  • NO:编号。
    
  • cpu:cpu编号。
    
  • frequency:频点。
    
  • duration:运行时长。
    
  • %:频点占用率。
    

Top20 单次运行超长线程

通过点击 Top20 单次运行超长线程标签,显示线程的单次运行时长来统计出单次运行时长最大的 20 个线程。 GitHub Logo

  • NO:编号。
    
  • tid:线程号。
    
  • t_name:线程名。
    
  • pid:进程号。
    
  • p_name:进程名。
    
  • max duration:最大运行时长。
    
  • timestamp:时间戳信息。
    

Top20 进程线程数

通过点击 Top20 进程线程数标签,显示线程数量最多的 20 个进程,以饼图和表格方式显示。 GitHub Logo

  • NO:编号。
    
  • pid:进程号。
    
  • p_name:进程名。
    
  • thread count:线程数量。
    

Top20 切换次数线程

通过点击 Top20 切换次数线程标签,显示切换次数最多的 20 个进程,以饼图和表格方式显示。 GitHub Logo

  • NO:编号。
    
  • tid:线程号。
    
  • t_name:线程名。
    
  • pid:进程号。
    
  • p_name:进程名。
    
  • sched_switch count:切换次数。