• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 系统内存抓取和展示说明
2
3系统内存分析模板帮助系统内存调优人员进行进程内存拆解。
4
5## 系统内存的抓取
6
7#### 系统内存的抓取配置参数
8
9打开 VM Tracker 开关抓取内存数据。
10![GitHub Logo](../../figures/Allmemory/allmemorycofig.jpg)
11
12### 系统内存展示说明
13
14将抓取的内存文件导入到 smartperf 中,查看进程内存的情况。
15![GitHub Logo](../../figures/Allmemory/allmemoryrow.jpg)
16
17### 系统内存中 Ability Monitor 泳道图显示
18
19Ability Monitor 泳道图分为 MemoryTotal,Cached,SwapTotal,System Purgeable Total,System Purgeable Pin,DMA,Skia Gpu Memory 泳道。
20![GitHub Logo](../../figures/Allmemory/abrow.jpg)
21
22### 系统内存中 Ability Monitor 泳道图点选功能
23
24System Purgeable Total 泳道图点选功能。
25![GitHub Logo](../../figures/Allmemory/purtotalselect.jpg)
26
27-     TimeStamp:时间戳。
28-     ActivePurg:当前时间点的ActivePurg内存。
29-     InActivePurg:当前时间点的InActivePurg内存。
30-     ShmPurg:当前时间点的ShmPurg内存。
31  System Purgeable Total 泳道图框选功能。
32  ![GitHub Logo](../../figures/Allmemory/purtotaldrag.jpg)
33-     Type:内存的类别。
34-     AvgSize:当前内存的平均值。
35-     MaxSize:当前内存的最大值。
36-     MinSize:当前内存的最小值。
37  System Purgeable Pin 泳道图点选功能。
38  ![GitHub Logo](../../figures/Allmemory/purpinselect.jpg)
39-     TimeStamp:时间戳。
40-     PinedPurg:当前时间点的PinedPurg内存。
41-     ShmPurg:当前时间点的ShmPurg内存。
42  System Purgeable Pin 泳道图框选功能。
43  ![GitHub Logo](../../figures/Allmemory/purpindrag.jpg)
44-     Type:内存的类别。
45-     AvgSize:当前内存的平均值。
46-     MaxSize:当前内存的最大值。
47-     MinSize:当前内存的最小值。
48  DMA 泳道图点选功能。
49  ![GitHub Logo](../../figures/Allmemory/dmaselect.jpg)
50-     TimeStamp:时间戳。
51-     Process(pid):进程名(进程ID)。
52-     Fd:DMA内存文件描述符。
53-     Size:DMA内存大小。
54-     Ino:Ino值。
55-     ExpPid:申请者的进程号。
56-     ExpTaskComm:ExpTaskComm的值。
57-     BufName:DMA内存名。
58-     ExpName:申请者的进程名。
59-     Flag:去重标记,0表示正常,1表示进程内部重复数据,2表示进程间重复数据。
60  DMA 泳道图框选功能。
61  ![GitHub Logo](../../figures/Allmemory/dmadrag.jpg)
62-     Process(pid):进程名(进程ID)。
63-     SumSize:DMA内存总量。
64-     AvgSize:DMA内存的平均值。
65-     MaxSize:DMA内存的最大值。
66-     MinSize:DMA内存的最小值。
67  Skia Gpu Memory 泳道图点选功能。
68  ![GitHub Logo](../../figures/Allmemory/sgpumemselect.jpg)
69-     TimeStamp:时间戳。
70-     GpuName:Gpu名称。
71-     Process(pid):进程名(进程ID)。。
72-     Size:对应进程的Gpu的使用size。
73  Skia Gpu Memory 泳道图框选功能。
74  ![GitHub Logo](../../figures/Allmemory/sgpumemdrag.jpg)
75-     GpuName:Gpu名称。
76-     Process(pid):进程名(进程ID)。
77-     SumSize:Gpu内存总量。
78-     AvgSize:Gpu内存的平均值。
79-     MaxSize:Gpu内存的最大值。
80-     MinSize:Gpu内存的最小值。
81
82### VM Tracker 下的 smaps 泳道图展示
83
84smaps 泳道图分为 Dirty,Swapped,RSS,PSS,USS 泳道图。
85![GitHub Logo](../../figures/Allmemory/smapsallrow.jpg)
86
87### VM Tracker 下的 smaps 泳道图的点选和框选功能
88
89点选和框选 Dirty,Swapped,RSS,PSS,USS 的 5 个泳道图中任一个显示的都是一样的内容,会显示 Smaps Statistic 和 Smaps sample 的 tab 页。
90Smaps Statistic 的 tab 页展示。
91![GitHub Logo](../../figures/Allmemory/sstaaticstab.jpg)
92
93-     Type: 将抓取到的信息根据Type归类。
94-     Path:虚拟内存块路径,类型中有多个则显示multiple。
95-     Size:在该虚拟内存块路径下内存的size总和。
96-     % of Res: 每行的Resident Size 占总Ressident Size的比例。
97-     Count:统计的类型个数。
98-     Rss: smaps节点中Rss。
99-     Pss: smaps节点中Pss。
100-     SharedClean: smaps节点中SharedClean。
101-     SharedDirty:smaps节点中Shared_Dirty。
102-     PrivateClean: smaps节点中PrivateClean。
103-     PrivateDirty:smaps节点中PrivateDirty。
104-     Swap:smaps节点中Swap。
105-     SwapPss:smaps节点中SwapPss。
106  Smaps sample 的 tab 页展示。
107  ![GitHub Logo](../../figures/Allmemory/ssampletab.jpg)
108-     TimeStamp: 时间戳信息。
109-     Type: 将抓取到的信息根据Type归类。
110-     Path:虚拟内存块路径,类型中有多个则显示multiple。
111-     Address Range:每段虚拟内存段的开始和结束位置。
112-     Rss: smaps节点中Rss。
113-     Pss: smaps节点中Pss。
114-     SharedClean: smaps节点中SharedClean。
115-     SharedDirty:smaps节点中Shared_Dirty。
116-     PrivateClean: smaps节点中PrivateClean。
117-     PrivateDirty:smaps节点中PrivateDirty。
118-     Swap:smaps节点中Swap。
119-     SwapPss:smaps节点中SwapPss。
120-     Reside: Rss / Size 比值。
121-     Protection: 内存块的权限(读写执行)。
122
123### VM Tracker 下的 GPU 泳道图展示
124
125smaps 泳道图分为 GL,Skia Gpu Dump Toal,Skia Gpu Dump Window,Skia Gpu Memory 泳道图。
126![GitHub Logo](../../figures/Allmemory/gpurow.jpg)
127Skia Gpu Memory 泳道图点选功能。
128![GitHub Logo](../../figures/Allmemory/vgpumemselect.jpg)
129
130-     TimeStamp:时间戳。
131-     GpuName:Gpu名称。
132-     Thread(tid):线程名(线程ID)。
133-     Size:对应线程的Gpu的使用size。
134  Skia Gpu Memory 泳道图框选功能。
135  ![GitHub Logo](../../figures/Allmemory/vgpumemdrag.jpg)
136-     GpuName:Gpu名称。
137-     Thread(tid):线程名(线程ID)。
138-     SumSize:Gpu内存总量。
139-     AvgSize:Gpu内存的平均值。
140-     MaxSize:Gpu内存的最大值。
141-     MinSize:Gpu内存的最小值。
142  Gl 泳道图框选功能。
143  ![GitHub Logo](../../figures/Allmemory/vglrag.jpg)
144-     TimeStamp:时间戳。
145-     GL_PSS:GL_PSS的大小。
146  Skia Gpu Dump Toal 泳道图点选功能。
147  ![GitHub Logo](../../figures/Allmemory/vgputotalselect.jpg)
148-     Module / Category:模块/目录。
149-     Size:按照模块/目录显示size大小。
150  Skia Gpu Dump Toal 泳道图框选功能。
151  ![GitHub Logo](../../figures/Allmemory/vgputotaldrag.jpg)
152-     TimeStamp:时间戳。
153-     Module / Category:模块/目录。
154-     AvgSize:对应模块/目录下size的平均值。
155-     MaxSize:对应模块/目录下size的最大值。
156-     MinSize:对应模块/目录下size的最小值。
157  Skia Gpu Dump Window 泳道图点选功能。
158  ![GitHub Logo](../../figures/Allmemory/vgpuwindowselect.jpg)
159-     Window / Module / Category:窗口/模块/目录。
160-     Size:按照窗口/模块/目录显示size大小。
161  Skia Gpu Dump Window 泳道图框选功能。
162  ![GitHub Logo](../../figures/Allmemory/vgpuwindowdrag.jpg)
163-     TimeStamp:时间戳。
164-     Window / Module / Category:窗口/模块/目录。
165-     AvgSize:对应窗口/模块/目录下size的平均值。
166-     MaxSize:对应窗口/模块/目录下size的最大值。
167-     MinSize:对应窗口/模块/目录下size的最小值。
168