以下内容已经在Iot-6ULX/EVB-6ULX平台上验证通过,Iot-6ULX/EVB-6ULX介绍如下:
2 Nand Flash读写测试
测试Nand Flash/eMMC的读写速度,主要用到dd指令。指令说明:
dd用于复制,用指定大小的块拷贝一个文件。从if(input file)文件读出,写到of(output file)指定的文件,bs是每次写块的大小,count是读写块的数量。"if=/dev/zero"不产生IO,即可以不断输出数据,因此可以用来测试纯写速度。
2.1 Nand Flash写速度测试
Nand Flash根文件系统下包含了多个目录,我们需要选择其中的某个目录进行测试。可以执行以下指令查看根目录下包含的目录。
root@embfly ~# cd /
root@embfly /# pwd
root@embfly /# ls
根目录下的内容
从上图中可以看到,根目录下包含了多个子目录。其中,root目录就是系统登陆时的默认所在目录(主目录)。在测试过程中,我们进入到root目录下进行测试。
root@embfly /# cd /root
root@embfly ~# pwd
进入到root目录下
使用dd指令往root目录下写入数据,并生成largefile文件,文件大小为80 MiB,测试写速度。
root@embfly ~# dd if=/dev/zero of=./largefile bs=8k count=10240 conv=fdatasync
Nand Flash写速度测试
从终端显示的信息中,写入的文件大小为80MiB,速度为36.2MB/s。
1.2.2 Nand Flash读速度测试
说明:因为Linux的内核机制,一般情况下不需要特意去释放已经使用的cache。这些cache内容可以增加文件的读写速度。
测试过程是为了能够测试出从Nand Flash中读取数据的准确速度,所以需要先清除缓存。
执行以下指令,清除缓存:
root@embfly ~# sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"
清除缓存
再次使用dd指令读取前面用dd指令写入的largefile文件,测试读速度:
root@embfly ~# dd if=./largefile of=/dev/null bs=8k
Nand Flash读速度测试
从终端显示的信息中,读取的文件大小为80MiB,速度为33.6MB/s。
测试完成后,用指令删除掉测试文件:
root@embfly ~# ls -alh largefile
root@embfly ~# rm largefile
删除测试文件