eMMC性能分析

1.1概述

eMMC (Embedded Multi Media Card) 为MMC协会所订立的、主要是针对手机产品为主的内嵌式存储器标准规格。

eMMC的一个明显优势是在封装中集成了一个控制器,它提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。

    对于我们来说,eMMC就是一款硬件器件。它的使用可以提高手机对ROM、SD等的访问速度,也就是提高了它们的读写速度。从用户外在使用感受来讲,就是可以提高应用的加载、视频的读取速度等。

1.2性能指标

对其性能的评定,主要指标是:读写速度。

eMMC的评定,首先从硬件指标上可以进行评判。这方面可以通过硬件厂商信息得知。

在同样的硬件下,并确保硬件品质OK的情况下,再进行性能的分析。

目前,较为方便的一种评定方法,是通过Antutu等跑分软件,进行评分。因为没有直接针对eMMC的打分,因此,一般以IO storage的评分为评估指标(以Antutu为例)。

1.3问题分析

一般情况下,

如果遇到相关UX问题,从ftrace的log可以确认出来是系统的问题还是eMMC本身读写数据慢导致。从mobilelog可以看出io loading的情况。

问题一、Ftrace中查看eMMC相关log的具体操作方式是怎样的?

可以参考文档《Ftrace_SMP_User_Mannual.pptx》,里面会有说明怎么看ftrace,需要注意IO WIAT部分。

问题二、Mobile log查看io loading的具体操作方式是怎样的?

搜索“kenrel log workload”,可以看到当时eMMC的loading情况。log如下:

        Line 2232: <6>[   15.844484].(6)[105:mmcqd/0][BLOCK_TAG]mmcqd:105

Workload=58%,duty 292743388, period 501573100, req_cnt=339

        Line 3133: <6>[   16.345710].(2)[105:mmcqd/0][BLOCK_TAG]mmcqd:105

Workload=30%,duty 152168141, period 501210300, req_cnt=284

        Line 3849: <6>[   16.846858].(1)[105:mmcqd/0][BLOCK_TAG]mmcqd:105

Workload=19%,duty 96656541, period 501148600, req_cnt=239

        Line 5093: <6>[   17.355422].(1)[105:mmcqd/0][BLOCK_TAG]mmcqd:105

Workload=16%,duty 85583857, period 508565200, req_cnt=148

        Line 5892: <6>[   17.855788].(3)[105:mmcqd/0][BLOCK_TAG]mmcqd:105

Workload=15%,duty 75225083, period 500369100, req_cnt=267

        Line 6594: <6>[   18.356459].(5)[105:mmcqd/0][BLOCK_TAG]mmcqd:105

Workload=11%,duty 55671082, period 500681100, req_cnt=202

说明:

这里的Workload是指eMMC block i/o的繁忙程度,百分比的统计是统计在固定间隔时间内有多久是在持续做I/O request,有多久是空闲的。如果达到99%,那就说明eMMC block i/o这段时间内完全没有空闲,一直在做读写数据的操作,这时候很容易发生由于blocki/o瓶颈导致的上层APP要访问i/o时可能等待时间较久的问题。block i/o如果performance不佳,在同时有多个thread需要对i/o进行读写时,就可能发生短时间内的卡顿或等待。

1.4问题解决

    由于eMMC是硬件器件,因此,如果确认是eMMC读写速度有问题,解决方式一般就是更换器件。


有任何问题,欢迎留言交流讨论!




你可能感兴趣的:(性能,android,调优,emmc)