hdparm -t 测的是内核 page cache 的内存带宽,非真实磁盘性能;需先预热缓存再测,结果通常 300–2000+ mb/s,受 cpu/内存影响大,须避让后台 i/o 干扰。

用 hdparm 测试硬盘缓存读取速率,本质是绕过磁盘物理层,只测内存缓存(page cache)的吞吐能力。这反映的是系统对已缓存数据的访问速度,并非真实磁盘性能。
确认测试前提:确保数据已在缓存中
hdparm 的 -t 参数测的是缓存读取,但前提是目标数据块已被内核缓存。若刚启动或缓存被清空,首次运行可能混入实际磁盘读取,结果偏低且不稳定。
- 先用
hdparm -t /dev/sdX跑一次(触发缓存加载) - 再立即重复执行相同命令,第二次及之后的结果才更接近纯缓存速率
- 可配合
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'清缓存后对比,验证差异
执行缓存读取测试
直接运行以下命令:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
sudo hdparm -t /dev/sdX
-
/dev/sdX替换为你的目标设备,如/dev/sda - 输出类似
Timing buffered disk reads: 1234 MB in 3.00 seconds = 411.33 MB/sec,这个值就是缓存读取速率 - 该数值高度依赖 CPU、内存带宽和内核版本,SSD 和 HDD 在此项上差距不大,通常在 300–2000+ MB/s 区间
避免常见干扰
缓存读取测试易受系统负载影响,需注意:
- 关闭图形界面或切换到字符终端(Ctrl+Alt+F2),减少 GUI 缓存竞争
- 暂停备份、同步、日志写入等后台 I/O 活动
- 不要同时运行
dd或bonnie++等工具,防止 page cache 被抢占 - 多次运行取平均值(例如循环 5 次),排除瞬时抖动
区分缓存读与真实磁盘读
别把缓存读(-t)和直通读(--direct -t)混淆:
-
sudo hdparm -t /dev/sdX→ 经 page cache,测内存/总线路径 -
sudo hdparm --direct -t /dev/sdX→ 绕过缓存,测磁盘真实顺序读速(更耗时,结果更低) - 两者结果差异大是正常的;若
--direct值异常低(如










