在统信UOS系统下测试硬盘真实读写速度,关键步骤是绕过缓存干扰。dd命令适用于5秒快速检测,写入时需添加oflag=direct参数,读取前须执行sync命令。fio工具可模拟多种I/O场景,重点观察IOPS和延迟表现。iozone能覆盖不同块大小与访问模式,生成全面的性能报告。测试前务必确认/tmp挂载在目标硬盘上,并建议使用smartctl检查坏道情况。

在统信UOS终端中测试硬盘速度时,若未正确绕过缓存干扰或未控制测试粒度,极易误判系统盘的真实性能。测得的数值很可能反映的是内存带宽,而非磁盘本身的读写能力。
用dd命令测顺序读写(快速检测)
操作非常简便,直接复制粘贴命令即可运行,5秒内就能判断硬盘是否存在严重降速问题。
1、测试写入:sudo dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 oflag=direct
2、测试读取:sudo sync && sudo dd if=/tmp/testfile of=/dev/null bs=1M iflag=direct
重要提醒:/tmp目录必须挂载在目标硬盘上!如果/tmp是tmpfs内存文件系统,测试结果将高达数GB/s,完全失真。执行前请先用df -h /tmp确认挂载位置。
用fio测多模式IO(深度评估)
fio能够模拟数据库、虚拟机、日志写入等真实负载场景,比dd更贴近实际业务需求,特别适合SSD或企业级存储的性能评估。
方法一:安装并运行预设模板
1、sudo apt install fio
2、sudo fio --name=randwrite --ioengine=libaio --iodepth=32 --rw=randwrite --bs=4k --direct=1 --size=2G --group_reporting
3、sudo fio --name=seqread --ioengine=libaio --iodepth=32 --rw=read --bs=1M --direct=1 --size=2G --group_reporting
方法二:单条命令覆盖常用组合
sudo fio -filename=/tmp/fiotest -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=1G -numjobs=1 -runtime=60 -group_reporting -name=mytest
在输出结果中,请重点关注iops和lat(a vg)这两列数值:若IOPS超过10万且平均延迟低于100μs,说明该硬盘为高性能NVMe;若随机读IOPS不足5000,则需排查驱动或硬件故障。
用iozone测全维度吞吐(专业分析)
iozone会自动遍历不同块大小(4K到16M)和访问模式,生成完整的性能表格,特别适合对比升级前后的变化,或用于撰写测试报告。
第一步:安装工具
sudo apt install iozone3
第二步:执行全模式测试
sudo iozone -a -i 0 -i 1 -i 2 -s 1G -r 4k,64k,1m -F /tmp/iozone.out
第三步:提取关键值
cat /tmp/iozone.out | grep -E "(read|write|random.*read|random.*write)" | awk '{print $3,$4,$5}'
第四步:定位瓶颈
如果1M块顺序读取能达到800MB/s,但4K随机读取仅20MB/s,说明该硬盘适合大文件场景。若所有指标均低于标称值50%,建议立即停止测试,运行smartctl -a检查Reallocated_Sector_Ct是否为非零值。
