1fb726d48Sopenharmony_ci# Scheduling analysis 抓取和展示说明
2fb726d48Sopenharmony_ci
3fb726d48Sopenharmony_ci抓取和展示 CPU 调度分析,线程调度分析相关数据。
4fb726d48Sopenharmony_ci
5fb726d48Sopenharmony_ci## Scheduling analysis 的抓取
6fb726d48Sopenharmony_ci
7fb726d48Sopenharmony_ci### Scheduling analysis 抓取界面配置说明
8fb726d48Sopenharmony_ci
9fb726d48Sopenharmony_ci打开 Scheduling analysis 开关抓取调度分析数据。
10fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/scheduset.jpg)
11fb726d48Sopenharmony_ci
12fb726d48Sopenharmony_ci### Scheduling analysis 文件的抓取
13fb726d48Sopenharmony_ci
14fb726d48Sopenharmony_ci点击 Record setting,在 output file path 输入文件名 hiprofiler_dataScheduling.htrace,拖动滚动条设置 buffer size 大小是 64MB,抓取时长是 50s。
15fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/schedusetting.jpg)
16fb726d48Sopenharmony_ci点击 Trace command,就会根据上面的配置生成抓取命令,点击 Record 抓取,抓取过程中会显示抓取时长。
17fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/scheduexcuting.jpg)
18fb726d48Sopenharmony_ci
19fb726d48Sopenharmony_ci## Scheduling analysis 功能介绍
20fb726d48Sopenharmony_ci
21fb726d48Sopenharmony_ci将抓取的文件导入到 smartperf 工具查看。
22fb726d48Sopenharmony_ci
23fb726d48Sopenharmony_ci### CPU 频点分析
24fb726d48Sopenharmony_ci
25fb726d48Sopenharmony_ci点击下拉列表框选择 CPU Frequency,可以看到各核 CPU 的各频点持续时长的占比图,以颜色区分各频点。
26fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/CPUFrequencychart.jpg)
27fb726d48Sopenharmony_ci点击 CPU Frequency 饼图,可以跳转到详细信息界面,用饼图和表格来展示某个 CPU 下各频点持续时长的的相关数据。
28fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/CPUFrequencydetailinfo.jpg)
29fb726d48Sopenharmony_ci
30fb726d48Sopenharmony_ci-     No:编号。
31fb726d48Sopenharmony_ci-     frequency:频率。
32fb726d48Sopenharmony_ci-     min:最小时长。
33fb726d48Sopenharmony_ci-     max:最大时长。
34fb726d48Sopenharmony_ci-     average:平均时长。
35fb726d48Sopenharmony_ci-     duration:运行总时长。
36fb726d48Sopenharmony_ci  点击详细页的 CPU Frequency 饼图,可以跳转某个 CPU 下某个频点的运行的线程信息。
37fb726d48Sopenharmony_ci  ![GitHub Logo](../../figures/Schedulinganalysis/CPUFrequencythreaddetail.jpg)
38fb726d48Sopenharmony_ci-     No:编号。
39fb726d48Sopenharmony_ci-     t_name:线程名。
40fb726d48Sopenharmony_ci-     tid:线程id。
41fb726d48Sopenharmony_ci-     p_name:进程名。
42fb726d48Sopenharmony_ci-     p_pid:进程id。
43fb726d48Sopenharmony_ci-     duration:运行总时长。
44fb726d48Sopenharmony_ci
45fb726d48Sopenharmony_ci### CPU Idle 分析
46fb726d48Sopenharmony_ci
47fb726d48Sopenharmony_ci点击下拉列表框选择 CPU Idle,可以看到各 CPU 的 Idle 的时长占比饼图,以颜色区分各 Idle。
48fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/CPUidlechart.jpg)
49fb726d48Sopenharmony_ci点击 CPU Idle 饼图,可以跳转到某 CPU 的 idle 分析的详细数据,以饼图和表格的形式展示。
50fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/CPUidledetailinfo.jpg)
51fb726d48Sopenharmony_ci
52fb726d48Sopenharmony_ci-     No:编号。
53fb726d48Sopenharmony_ci-     idle:idle值。
54fb726d48Sopenharmony_ci-     min:最小时长。
55fb726d48Sopenharmony_ci-     max:最大时长。
56fb726d48Sopenharmony_ci-     average:平均时长。
57fb726d48Sopenharmony_ci-     duration:运行总时长。
58fb726d48Sopenharmony_ci
59fb726d48Sopenharmony_ci### CPU Irq 分析
60fb726d48Sopenharmony_ci
61fb726d48Sopenharmony_ci点击下拉列表框选择 CPU Irq,可以看到各 CPU 的 Irq 的时长占比饼图,以颜色区分。
62fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/CPUirqchart.jpg)
63fb726d48Sopenharmony_ci点击 CPU Irq 饼图,可以跳转到某 CPU 的 Irq 分析的详细数据,以饼图和表格的形式展示。
64fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/CPUirqdetailinfo.jpg)
65fb726d48Sopenharmony_ci
66fb726d48Sopenharmony_ci-     No:编号。
67fb726d48Sopenharmony_ci-     block:irq的类型。
68fb726d48Sopenharmony_ci-     name:irp名称。
69fb726d48Sopenharmony_ci-     min:最小时长。
70fb726d48Sopenharmony_ci-     max:最大时长。
71fb726d48Sopenharmony_ci-     average:平均时长。
72fb726d48Sopenharmony_ci-     duration:运行总时长。
73fb726d48Sopenharmony_ci
74fb726d48Sopenharmony_ci### CPU 占用率显示
75fb726d48Sopenharmony_ci
76fb726d48Sopenharmony_ci以表格显示各 CPU 的占用率。
77fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/CPUusagechart.jpg)
78fb726d48Sopenharmony_ci
79fb726d48Sopenharmony_ci### Top20 线程大中小核占用率
80fb726d48Sopenharmony_ci
81fb726d48Sopenharmony_ci选择 Thread Analysis 标签页,各个 CPU 通过勾选 big 或者 middle 或者 small 来设置 CPU 的分类。
82fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/CPUsetting.jpg)
83fb726d48Sopenharmony_ci各 CPU 勾选好大中小核,点击 Upload 可以跳转到各个线程 CPU 占用率情况的展示页面。
84fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/CPUdetailsetting.jpg)
85fb726d48Sopenharmony_ci如上图所示:
86fb726d48Sopenharmony_ci
87fb726d48Sopenharmony_ci-     三色柱状图:各个线程CPU的占用率情况,其中以颜色区分占用的大中小核的占用率情况,并以表格的形式展示各个线程的基本信息和大中小核占用率。
88fb726d48Sopenharmony_ci-     单色柱状图:分别统计线程在某一个类别(大、中、小)的CPU的占用率,并显示出线程的基本信息和占用率。
89fb726d48Sopenharmony_ci  表格的字段说明:
90fb726d48Sopenharmony_ci-     tid:线程号。
91fb726d48Sopenharmony_ci-     t_name:线程名。
92fb726d48Sopenharmony_ci-     pid:进程号。
93fb726d48Sopenharmony_ci-     p_name:进程名。
94fb726d48Sopenharmony_ci-     big core:大核占用时长。
95fb726d48Sopenharmony_ci-     middle core:中核占用时长。
96fb726d48Sopenharmony_ci-     small core:小核占用时长。
97fb726d48Sopenharmony_ci-     cpu..(us):运行总时长(..代表cpu号)。
98fb726d48Sopenharmony_ci
99fb726d48Sopenharmony_ci### 单个线程频点分布
100fb726d48Sopenharmony_ci
101fb726d48Sopenharmony_ci点击单个线程频点分布的标签,通过在 Thread Search 选择线程,来展示单个线程的频点分布情况。
102fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/CPUfrequencybythread.jpg)
103fb726d48Sopenharmony_ci
104fb726d48Sopenharmony_ci-     NO:编号。
105fb726d48Sopenharmony_ci-     cpu:cpu编号。
106fb726d48Sopenharmony_ci-     frequency:频点。
107fb726d48Sopenharmony_ci-     duration:运行时长。
108fb726d48Sopenharmony_ci-     %:频点占用率。
109fb726d48Sopenharmony_ci
110fb726d48Sopenharmony_ci### Top20 单次运行超长线程
111fb726d48Sopenharmony_ci
112fb726d48Sopenharmony_ci通过点击 Top20 单次运行超长线程标签,显示线程的单次运行时长来统计出单次运行时长最大的 20 个线程。
113fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/Top20Threadduration.jpg)
114fb726d48Sopenharmony_ci
115fb726d48Sopenharmony_ci-     NO:编号。
116fb726d48Sopenharmony_ci-     tid:线程号。
117fb726d48Sopenharmony_ci-     t_name:线程名。
118fb726d48Sopenharmony_ci-     pid:进程号。
119fb726d48Sopenharmony_ci-     p_name:进程名。
120fb726d48Sopenharmony_ci-     max duration:最大运行时长。
121fb726d48Sopenharmony_ci-     timestamp:时间戳信息。
122fb726d48Sopenharmony_ci
123fb726d48Sopenharmony_ci### Top20 进程线程数
124fb726d48Sopenharmony_ci
125fb726d48Sopenharmony_ci通过点击 Top20 进程线程数标签,显示线程数量最多的 20 个进程,以饼图和表格方式显示。
126fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/Top20Threadnum.jpg)
127fb726d48Sopenharmony_ci
128fb726d48Sopenharmony_ci-     NO:编号。
129fb726d48Sopenharmony_ci-     pid:进程号。
130fb726d48Sopenharmony_ci-     p_name:进程名。
131fb726d48Sopenharmony_ci-     thread count:线程数量。
132fb726d48Sopenharmony_ci
133fb726d48Sopenharmony_ci### Top20 切换次数线程
134fb726d48Sopenharmony_ci
135fb726d48Sopenharmony_ci通过点击 Top20 切换次数线程标签,显示切换次数最多的 20 个进程,以饼图和表格方式显示。
136fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Schedulinganalysis/Top20swtichcount.jpg)
137fb726d48Sopenharmony_ci
138fb726d48Sopenharmony_ci-     NO:编号。
139fb726d48Sopenharmony_ci-     tid:线程号。
140fb726d48Sopenharmony_ci-     t_name:线程名。
141fb726d48Sopenharmony_ci-     pid:进程号。
142fb726d48Sopenharmony_ci-     p_name:进程名。
143fb726d48Sopenharmony_ci-     sched_switch count:切换次数。
144