• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# FileSystem的抓取和展示说明
2FileSystem分析文件系统的信息和活动,比如读和写操作等。
3## FileSystem的抓取
4### FileSystem抓取配置参数
5![GitHub Logo](../../figures/FileSystem/filesystemsetting.jpg)
6配置项说明:
7+     Start FileSystem Record:配置项的总开关。
8+     Process:默认配置的是整个系统的,也可选择单进程抓取。
9+     Max Unwind Level:配置抓取调用栈的最大深度。
10
11再点击Record setting,在output file path输入文件名hiprofiler_data_filesystem.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。
12![GitHub Logo](../../figures/FileSystem/filesystemrecord.jpg)
13点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。
14![GitHub Logo](../../figures/FileSystem/FileSystemcommand.jpg)
15输入hdc_std shell,进入设备,执行命令。
16![GitHub Logo](../../figures/FileSystem/FileSystemexcutecommand.jpg)
17执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件。
18![GitHub Logo](../../figures/FileSystem/FileSystemfile.jpg)
19### FileSystem展示说明
20将抓取的trace文件导入smartperf界面查看。
21![GitHub Logo](../../figures/FileSystem/FileSystemsummary.jpg)
22
23界面布局介绍:FileSystem整体界面布局分为3个部分:
24+     红色区域:泳道图。
25+     绿色区域:详细信息。
26+     黄色区域:辅助信息(Callstack)。
27
28### FileSystem泳道图展示
29FileSystem泳道图按照读操作和写操作展示,鼠标移动都泳道图上,悬浮框会以10ms为周期展示读,写类型系统调用的次数。
30![GitHub Logo](../../figures/FileSystem/FileSystemchart.jpg)
31按住w键放大界面,悬浮框会显示当前时刻的文件读写次数。
32![GitHub Logo](../../figures/FileSystem/FileSystemcount.jpg)
33### FileSystem泳道图的框选功能
34可以对读写操作泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有五个tab页。
35FileSystem statistics的Tab页如图:
36![GitHub Logo](../../figures/FileSystem/FileSystemstatistics.jpg)
37+     Syscall/Process: 按照数据类型,进程分类显示。
38+     Count: 系统调用的数量。
39+     Logical Writes:写数据统计。
40+     Logical Reads:读数据统计。
41+     Other Filesystem Bytes:其他数据量。
42+     Duration:总时长。
43+     Min Duration:最小时长。
44+     Avg Duration: 平均时长。
45+     Max Duration:最大时长。
46FileSystem Calltree的Tab页如图:
47![GitHub Logo](../../figures/FileSystem/FileSystemCalltree.jpg)
48+     Call Stack:为经过符号解析后的Callstack,并且给出动态链接库或者进程名的信息。
49+     Local:为该调用方法自身占用的CPU时间。
50+     Weight:调用方法的执行占比。
51FileSystem Events的Tab页如图:
52![GitHub Logo](../../figures/FileSystem/FileSystemevents.jpg)
53+     Start: 起始时间。
54+     Duration:时长。
55+     Process:进程名。
56+     Thread:线程名。
57+     Firsr Argument:系统调用的第一个参数。
58+     Second Argument:系统调用的第二个参数。
59+     Third Argument:系统调用的第三个参数。
60+     Fourth Argument:系统调用的第四个参数。
61+     Retrun:系统调用的返回值。
62+     Error:错误码。
63+     Backtrace:调用栈顶部函数,并显示调用栈深度。
64File Descriptor History的Tab页如图:
65![GitHub Logo](../../figures/FileSystem/FileSystemhistory.jpg)
66+     Start: 起始时间。
67+     Duration:时长。
68+     Process:进程名。
69+     Type:操作类型。
70+     File Descriptor:fd。
71+     Backtrace:调用栈顶部函数,并显示调用栈深度。
72File Descriptor Time Slice的Tab页如图:
73![GitHub Logo](../../figures/FileSystem/FileSystemtimeslice.jpg)
74+     Open Time: 打开的起始时间。
75+     Open Duration:打开的时长。
76+     Process:进程名。
77+     File Descriptor:fd。
78+     Backtrace:调用栈顶部函数,并显示调用栈深度。
79### FileSystem支持多种Options展示风格
80点击FileSystem Calltree的Tab页底部的Options,会有两个CheckBox复选框。
81![GitHub Logo](../../figures/FileSystem/FileSystemOptions.jpg)
82+     Invert:反向输出调用树。
83+     Hide System so:隐藏系统库文件。
84### FileSystem支持过滤调用栈调用次数的展示风格
85点击FileSystem Calltree的Tab页底部的Sample Counter Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。
86![GitHub Logo](../../figures/FileSystem/FileSystemsamplecounter.jpg)
87
88### FileSystem功能的调用栈Group展示-数据分析支持剪裁功能
89![GitHub Logo](../../figures/FileSystem/FileSystemdatamining.jpg)
90+  裁剪Callstack,点击Callstack上一个节点符号,再点击底部Symbol Filter按钮,则该符号自动被裁剪掉,同时将该节点往下所有的Callstack内容裁剪掉。
91
92+ 裁剪Library,点击Library Filter按钮,则该库文件符号下所有的子节点也被裁剪。
93+ 点击Reset按钮,将恢复选中的裁剪内容。
94### FileSystem功能的调用栈Group展示支持按条件过滤
95在Input Filter输入关键字,会显示出带有该关键字的展示信息。
96 ![GitHub Logo](../../figures/FileSystem/FileSysteminputfilter.jpg)
97### FileSystem辅助信息区展示调用栈
98当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。如下图的Heaviest Stack Trace:
99 ![GitHub Logo](../../figures/FileSystem/FileSystemheaviesttrace.jpg)
100### FileSystem的事件类型的过滤
101 通过选择可以过滤是Open类型,还是Close类型事件。
102  ![GitHub Logo](../../figures/FileSystem/filesystemfilter.jpg)
103### FileSystem的火焰图功能
104点击FileSystem Calltre左下角的柱状图的图标,会切换到火焰图页面。
105![GitHub Logo](../../figures/FileSystem/FileSystemflame.jpg)
106进入到火焰图页面,火焰图的展示跟Callinfo的tab页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称和Duration时长。
107![GitHub Logo](../../figures/FileSystem/FileSystemflameshow.jpg)
108鼠标左键火焰图,会进入下一级界面,右键回到上一级。
109![GitHub Logo](../../figures/FileSystem/FileSystemflamelevel.jpg)
110
111