Blog:
NXP iMX8 存储性能测试

Wednesday, August 5, 2020

简介

NXP iMX8系列应用处理器是NXP发布的基于 Cortex-A72/A53/A3 5和 Coretex-M4/M7 等架构的 Arm 处理器,对于存储部分,主要支持 MMC 5.1、SD Memory Card 3.0、SATA 3.0、USB 3.0 总线,本文就基于上述总线连接相应存储外设进行一些简单的性能对比测试。

本文所演示的ARM平台来自于Toradex 基于NXP iMX8QP ARM处理器的Apalis iMX8QP ARM嵌入式平台。

准备

Apalis iMX8QP Arm 核心版配合 Ixora 载板,连接调试串口 UART1(载板X22)到开发主机方便调试。

Apalis iMX8 核心板安装 Toradex Ycoto Linux Console image V3.04版本,详细信息请参考这里

测试设备:

  • Apalis iMX8QP 核心板板载Micron 16GB eMMC存储
  • Kingston 240G SATA 3.0 mSATA 存储
  • Toshiba 64GB USB 3.0 USB存储盘
  • Kingston 8GB SDHC 4 Micro SD存储盘

测试流程

测试工具软件

读测试:hdparm 和 dd 工具,都是系统自带的

写测试:dd工具,系统自带

Apalis iMX8QP 核心板自带 eMMC 测试

读性能 – hdparm测试

root@apalis-imx8:~# hdparm -tT --direct /dev/mmcblk0
/dev/mmcblk0:
Timing O_DIRECT cached reads:   326 MB in  2.00 seconds = 162.78 MB/sec
Timing O_DIRECT disk reads: 488 MB in  3.00 seconds = 162.59 MB/sec

hdparm读测试性能为 162MB/s

写测试 – dd测试,先将缓存全部写入磁盘,然后开始完成数据写入(5000MB数据)并写入磁盘的操作,避免系统缓存的干扰

root@apalis-imx8:~# sync;time -p bash -c "(dd if=/dev/zero bs=1M count=5000 of=/home/root/test.file;sync)"                                            
5000+0 records in
5000+0 records out
real 115.24
user 0.02
sys 30.49

dd写测试性能为43MB/s

读测试 – dd 测试,先清空缓存,再读取刚写测试写入的文件

root@apalis-imx8:~# echo 3 > /proc/sys/vm/drop_caches ;time dd if=/home/root/test.file of=/dev/null bs=1M
[12721.556361] sh (4312): drop_caches: 3
5000+0 records in
5000+0 records out
real    0m24.649s
user    0m0.013s
sys     0m7.882s

dd 读测试性能为203MB/s

mSATA存储测试

读性能 – hdparm测试

root@apalis-imx8:~# hdparm -tT --direct /dev/sda
/dev/sda:
Timing O_DIRECT cached reads:   536 MB in  2.00 seconds = 267.78 MB/sec
Timing O_DIRECT disk reads: 834 MB in  3.00 seconds = 277.81 MB/sec

hdparm读测试性能为 278MB/s

写测试 – dd测试,首先确保mSATA磁盘分区为Linux EXT3分区而不是FAT32分区,避免4GB文件容量限制;然后写入20000MB数据进行测试

root@apalis-imx8:~# sync;time -p bash -c "(dd if=/dev/zero bs=1M count=20000 of=/media/sda1/test.file;sync)"                                          
20000+0 records in
20000+0 records out
real 166.53
user 0.10
sys 136.55

dd写测试性能为120MB/s

读测试 – dd测试,先清空缓存,再读取刚写测试写入的文件-

root@apalis-imx8:~# echo 3 > /proc/sys/vm/drop_caches ;time dd if=/media/sda1/test.file of=/dev/null bs=1M
[ 1451.601563] sh (4302): drop_caches: 3
20000+0 records in
20000+0 records out
real    1m11.699s
user    0m0.077s
sys     0m43.444s

dd读测试性能为279MB/s

USB 3.0磁盘测试

读性能 – hdparm测试

root@apalis-imx8:~# hdparm -tT --direct /dev/sdb                                                                                                      
/dev/sdb:
Timing O_DIRECT cached reads:   164 MB in  2.01 seconds =  81.47 MB/sec
Timing O_DIRECT disk reads: 230 MB in  3.01 seconds =  76.29 MB/sec
root@apalis-imx8:~# hdparm -tT --direct /dev/sdb

hdparm读测试性能为 76MB/s

写测试 – dd测试,FAT32分区,写入3000MB数据进行测试

root@apalis-imx8:~# sync;time -p bash -c "(dd if=/dev/zero bs=1M count=3000 of=/media/sdb1/test.file;sync)"
3000+0 records in
3000+0 records out
real 207.67
user 0.00
sys 24.04

dd写测试性能为14MB/s

读测试 – dd测试,先清空缓存,再读取刚写测试写入的文件

root@apalis-imx8:~# echo 3 > /proc/sys/vm/drop_caches ;time dd if=/media/sdb1/test.file of=/dev/null bs=1M
[ 3962.950390] sh (4302): drop_caches: 3
3000+0 records in
3000+0 records out
real    0m35.672s
user    0m0.028s
sys     0m7.581s

dd读测试性能为84MB/s

SD Memroy Card测试

读性能 – hdparm测试

root@apalis-imx8:/# hdparm -tT --direct /dev/mmcblk1                                                                                                  
/dev/mmcblk1:
Timing O_DIRECT cached reads:    44 MB in  2.04 seconds =  21.60 MB/sec
Timing O_DIRECT disk reads:  66 MB in  3.03 seconds =  21.77 MB/sec

hdparm读测试性能为 22MB/s

写测试 – dd测试,FAT32分区,写入3000MB数据进行测试

root@apalis-imx8:/# sync;time -p bash -c "(dd if=/dev/zero bs=1M count=3000 of=/media/mmcblk1p1/test.file;sync)"                                      
3000+0 records in
3000+0 records out
real 564.41
user 0.02
sys 35.04

dd写测试性能为5MB/s

读测试 – dd测试,先清空缓存,再读取刚写测试写入的文件

root@apalis-imx8:/# echo 3 > /proc/sys/vm/drop_caches ;time dd if=/media/mmcblk1p1/test.file of=/dev/null bs=1M                                       
[ 1638.664693] sh (4292): drop_caches: 3
3000+0 records in
3000+0 records out
real    2m29.023s
user    0m0.011s
sys     0m5.625s

dd读测试性能为20MB/s

测试结果

表格

hdparm读测试(MB/s)

dd读测试(MB/s)

dd写测试(MB/s)

板载Micron 16GB eMMC存储 162 203 43
Kingston 240G SATA 3.0 mSATA 存储 278 279 120
Toshiba 64GB USB 3.0 USB存储盘 76 84 14
Kingston 8GB SDHC 4 Micro SD存储盘 22 20 5

柱状图

总结

本文基于 NXP iMX8 产品测试了包括 eMMC、SATA、USB、SD 存储外设性能供参考,由于存储设备的传输速率受接口协议,容量,测试工具软件,系统总线等众多因素影响,本文测试数据仅供横向对比参考,不能作为相应接口传输标准判定。

Author: 秦海,技术销售工程师,韬睿(上海)
Share this on:

Leave a comment

Please login to leave a comment!
Have a Question?