概述
本文档说明测试块设备(block device)读写性能的方法。块设备包含如 SATA、USB、SD、eMMC、Nand 等。
测试技术要点
- 读写使用 dd 命令,基于块设备在 /dev/ 下的设备文件进行操作,不依赖文件系统。
- 从 /dev/urandom 获取随机数进行读写测试。
- 考虑硬件框图、数据流向。直接从 DDR 内存读取数据写入到待测设备,直接从待测设备读取数据然后存储到 DDR 内存。不能从待测设备读取再写入待测设备,把待测设备的读与写纠缠一起。
- 在 tmpfs /dev/shm/ 路径下暂存数据,即使用 DDR 内存。
- 清除缓存数据:echo 3 > /proc/sys/vm/drop_caches 。确保数据确实写入到、读取自待测设备,避免后续的 cmp 比较只是比较缓存中的数据。
- 注意 dd 的 bs 设置会影响总体测试数据。512 KB 以上会达到最快。读写模式使用 conv=sync 确保数据完成写入、读取。
- 注意操作系统不能从待测设备启动,避免操作系统其他数据占用待测设备的通信带宽。
- 统计 CPU 负载。计算不同数据量测试的平均值、方差。