安卓平台IO特性分析

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

作者 硅格-JC

背景

测试环境:

测试设备:Nexus532GB SanDisk INAND eMMC 4.51,无外挂SD卡。

操作系统:Android v4.4

IO监控软件:作者自己搞的BIOtracer

 

测试内容:

    选取常用的14个软件,和4个系统功能。那么有18个应用场景和它们一些组合应用场景(电话、空闲和启动手机也简单认为是应用程序之一)。详细如下:

 



 

数据记录:

    命令请求的大小、类型、位置和响应时间、 service time, and inter-arrival time。和请求并行程度。

 

测试数据:

    A. eMMC吞吐量


    上图是从25种测试case中获取的数据的平均值。可以看到,请求数据大小对eMMC吞吐量有很大影响。因为Flash读操作比编程用时短,所以可以看到读的极限速度比编程写命令要高很多。

    
 

B. 数据大小关联性


    表格项说明:

Data Size:所有命令请求数据总量

Number of Reqs:命令请求数

Max Size:单个请求最大数据包的大小

Write Reqs Pct:写操作占命令的百分比

Write Size Pct:写操作数据量大小占数据传输的百分比。

     规律:

1. 因为有packing command这个特性,所以数据请求大小可以超过Linux的限制512KB

2. 命令平均请求长度一般在11KB34.5KB之间。

3. 大部分使用场景下,写请求比较多。

 

特性1:绝大部分手机应用都是以写操作为主。


    18个应用的写操作大小分布如图4所示。可以看到小数据操作占了大部分,大数据请求占百分比很少。最后10个互联网应用的大小分布,命令请求大小;分布比较类似。

 

特性2:小数据请求占了所有请求的大部分。

 


 

    C. 时间相关性分析

Recording Duration:数据记录的时间

Arrival Rate:每秒种命令请求次数。

Access Rate:平均每秒钟数据请求量

NoWart  Req. Ratio:指那些被马上执行的请求的比率。意味着当时没有进行中的命令,这些命令可以被马上执行。

Mean Serv:命令平均服务时间

Mean Resp:命令平均响应时间

    待机、打电话和Yoututedata access rate很低。系统启动时,每秒请求量比较高,主要是读操作。程序安装,每秒请求次数和数据传输量都比较高。15个应用中,最低有63%的请求可以马上执行,其中有10个应用的80%请求可以马上执行。

   
 

 特性3:大部分请求到达的时候可以被立刻执行。也就是说,很少请求会同时到达。

 

    从表格IV看到,手机待机、通话中、YouTube和微博这种平均一秒都还不发不到一条命令的应用,平均响应时间还更久。z这是因为eMMC在无操作一段时间后会进入低功耗模式,唤醒初始化到响应命令需要一段时间。

 

    特性4:在eMMC空闲时间超过阈值,eMMC会进入低功耗模式。因此有些周期性访问eMMC的设备,导致eMMC频繁在低功耗模式和正常模式间切换,这样会导致平均相应时间变慢。

 

    Spatial Locality(空间局部性):顺序访问所占的比率。

    Temoral Locality(时间局部性):重复存取同一个地址的比率。

    18个应用场景中,16个空间局部性比率是低于30%的,即使在所有应用场景中最多也是48%。时间局部性会普遍好点,18个应用场景中,11个处于于30.83%52.9%的。总的来说,相对于服务器级别应用局部性原理的二八定律,上述测试的应用看起来不太符合。

    
 

特性5:测试应用场景,局部性的特性不明显。其中空间局部性比时间局部性要低

 


 

从表格5可以看出,大部分的命令都可以在2ms内完成,绝大部分在16ms内完成。我们发现响应时间分布和请求大小分布是有很强关联性的。可以发现相应时间大部分是取决于命令请求的大小。

 


 

表格6显示各应用命令请求的时间间隔分布。看电影的时候大部分请求间隔都在1ms以内。从中也可以看到互联网应用的请求时间间隔分布是类似的。本地的一些应用,比如说看电影听音乐等命令请求频率会比互联网应用要高。

 

    特性6:在大部分应用中,平均请求间隔均比较久。其中13个应用命令间隔大于200ms,另外10个应用中,超过20%的命令间隔大于16ms

 

分类目录 存储.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。