1# Ability Monitor 抓取和展示说明
2
3抓取和展示处理的 CPU,内存,磁盘 IO 和网络使用情况统计。
4
5## Ability Monitor 的抓取
6
7### Ability Monitor 抓取界面配置说明
8
9点击 Probes config,如选择抓取 AbilityMonitor。
10![GitHub Logo](../../figures/AbilityMonitor/abilityset.jpg)
11
12### Ability Monitor 文件的抓取
13
14点击 Record setting,在 output file path 输入文件名 hiprofiler_data_abilitymonitor.htrace,拖动滚动条设置 buffer size 大小是 64MB,抓取时长是 50s。
15![GitHub Logo](../../figures/AbilityMonitor/abilitysetting.jpg)
16点击 Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。
17![GitHub Logo](../../figures/AbilityMonitor/abilitycommand.jpg)
18输入 hdc shell,进入设备,执行命令。
19![GitHub Logo](../../figures/AbilityMonitor/abilityexcutecommand.jpg)
20进入指定目录,cd /data/local/tmp 进入到目录,会看到生成的 trace 文件。
21![GitHub Logo](../../figures/AbilityMonitor/abilityhtrace.jpg)
22
23## Ability Monitor 功能介绍
24
25将抓取的文件导入到 smartperf 工具查看,能了解 CPU,内存,磁盘 IO 和网络的使用情况。
26
27### Ability Monitor 泳道图展示
28
29Ability Monitor 展开就可以看到泳道图,包括 CPU,内存,磁盘 IO,网络的使用情况。
30![GitHub Logo](../../figures/AbilityMonitor/abilitymonitorflowchart.jpg)
31
32-     CPU Total Load:总的CPU使用率。
33-     CPU User Load:CPU在用户态空间运行的使用率。
34-     CPU System Load:CPU在内核空间运行的使用率。
35-     MemoryTotal: 总计物理内存的大小。
36-     Cached:缓存的大小。
37-     SwapTotal: 虚拟内存。
38-     Disk Bytes Read/Sec:每秒从磁盘读取到内存的字节数。
39-     Disk Bytes Written/Sec: 每秒从内存写入磁盘的字节数。
40-     Disk Read Ops/Sec:读取的字节数。
41-     Disk Written Ops/Sec: 写入的字节数。
42-     Network Bytes In/Sec:每秒接收的网络数据字节数。
43-     Network Bytes Out/Sec: 每秒发送的网络数据字节数。
44-     Network Packets In/Sec:每秒接收的网络数据包数。
45-     Network Packets Out/Sec: 每秒发送的网络数据包数。
46-     Purgeable Total: 可清除总量。
47-     Purgeable Pin:可清除编码。
48-     DMA:直接内存存取。
49-     Skia Gpu Memory:Skia显存。
50
51### Ability Monitor 泳道图的框选功能
52
53可以对 CPU,内存,磁盘 IO 和网络的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有六个 tab 页。
54Live Processes 的 Tab 页如图:
55![GitHub Logo](../../figures/AbilityMonitor/liveprocess.jpg)
56
57-     Process ID:进程的ID。
58-     Process Name:进程名称。
59-     Responsible Process:父进程ID。
60-     User ID:用户ID。
61-     %CPU:进程的CPU占用率。
62-     CPU Time:CPU运行时间。
63-     #Threads:进程的线程数量。
64-     Memory:内存值。
65-     Disk Writes(Byte):磁盘写入的字节数。
66-     Disk Reads(Byte):磁盘读取的字节数。
67  Processes History 的 Tab 页如图:
68  ![GitHub Logo](../../figures/AbilityMonitor/ProcessesHistory.jpg)
69-     Process ID:进程ID。
70-     Alive:进程是否存活。
71-     First Seen:开始时间。
72-     Last Seen:所选区域的结束时间。
73-     Process Name:进程名称。
74-     Responsible Process:父进程ID。
75-     User ID:用户ID。
76-     CPU Time:CPU运行时间。
77  框选 CPU Total Load,CPU User Load,CPU System Load 三个区域的泳道图,会展示 System CPU Summary 的 Tab 页。
78  ![GitHub Logo](../../figures/AbilityMonitor/cpusummary.jpg)
79-     Start Time:采集时间的时间戳。
80-     Duration:前一次采集到本次采集的时间差。
81-     TotalLoad%:总的CPU使用率。
82-     UserLoad%:CPU在用户态空间运行的使用率。
83-     SystemLoad%:CPU在内核空间运行的使用率。
84-     Process:进程号。
85  框选 MemoryTotal,Cached,SwapTotal 三个区域的泳道图,会展示 System Memory Summary 的 Tab 页。
86  ![GitHub Logo](../../figures/AbilityMonitor/memorytab.jpg)
87-     StartTime:采集时间的时间戳。
88-     Duration:前一次采集到本次采集的时间差。
89-     MemTotal:总内存大小。
90-     MemFree:空闲内存大小。
91-     Buffers:文件的缓冲大小。
92-     Cached:缓存的大小。
93-     Shmem:已被分配的共享内存大小。
94-     Slab:内核数据缓存大小。
95-     SUnreclaim:不可回收的Slab大小。
96-     SwapTotal:交换空间的总大小。
97-     SwapFree:未被使用交换空间的大小。
98-     Mapped:设备和文件等映射的大小。
99-     VmallocUsed:已被使用的虚拟内存大小。
100-     PageTables:管理内存分页的索引表大小。
101-     KernelStack:Kernel消耗的内存。
102-     Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小。
103-     Inactive:在不经常使用中的缓冲或高速缓冲存储器页面文件的大小。
104-     Unevictable:不能被释放的内存页。
105-     VmallocTotal:可以vmalloc虚拟内存大小。
106-     CmaTotal:总的连续可用内存。
107-     CmaFree:空闲的可用内存。
108-     Zram:Zram的使用大小。
109  框选 Disk Bytes Read/Sec,Disk Bytes Written/Sec,Disk Read Ops/Sec,Disk Written Ops/Sec 四个区域的泳道图,会展示 System Disk Summary 的 Tab 页。
110  ![GitHub Logo](../../figures/AbilityMonitor/disktab.jpg)
111-     StartTime:采集时间的时间戳。
112-     Duration:前一次采集到本次采集的时间差。
113-     Data Read:从磁盘读取到内存的总字节数。
114-     Data Read/sec:每秒从磁盘读取到内存的字节数。
115-     Data Write:从内存写入磁盘的总字节数。
116-     Data Write/sec:每秒从内存写入磁盘的字节数。
117-     Reads In:读入的字节数。
118-     Reads In/sec:每秒读取的字节数。
119-     Write Out:写入的字节数。
120-     Write Out/sec:每秒写入的字节数。
121  框选 Network Bytes In/Sec,Network Bytes Out/Sec,Network Packets In/Sec,Network Packets Out/Sec 四个区域的泳道图,会展示 System Network Summary 的 Tab 页。
122  ![GitHub Logo](../../figures/AbilityMonitor/network.jpg)
123-     StartTime:采集时间的时间戳。
124-     Duration:前一次采集到本次采集的时间差。
125-     Data Received:接收的网络数据总字节数。
126-     Data Received/sec:每秒接收的网络数据字节数。
127-     Data Send:发送的网络数据总字节数。
128-     Data Send/sec:每秒发送的网络数据字节数。
129-     Packets In:接收的网络总数据包数。
130-     Packets In/sec:每秒接收的网络数据包数。
131-     Packets Out:发送的网络总数据包数。
132-     Packets Out/sec:每秒发送的网络数据包数。
133