linux怎么测试硬盘读写
linux怎么测试硬盘读写详细介绍
在 Linux 系统中,测试硬盘读写速度可以通过多种工具实现,以下是几种常用方法:
1. 使用 dd 命令(简单快速)
dd 命令可通过读写指定文件来测试磁盘性能,适用于临时快速测试。
写入测试
bash
/proc/sys/vm/drop_caches
/dev/zero /mnt/test-write.img 1G fdatasync
if=/dev/zero:从空设备读取数据(全零数据)。of=目标文件:写入到指定文件。bs=1G:块大小为 1GB,count=4:写入 4 个块(共 4GB)。conv=fdatasync:强制数据同步到磁盘,避免缓存影响结果。time:显示命令执行时间,用于计算速度。
读取测试
bash
/proc/sys/vm/drop_caches/mnt/test-write.img /dev/null 1G
2. 使用 hdparm 命令(读取速度测试)
hdparm 主要用于测试硬盘的读取性能(适合 HDD,对 SSD 兼容性有限)。
bash
hdparm /dev/sda
-T:测试硬盘缓存读取速度。-t:测试实际磁盘读取速度(不经过缓存)。
3. 使用 sysbench 命令(更全面的 IO 测试)
sysbench 是一款多功能基准测试工具,支持文件 IO、CPU、内存等测试。
安装
bash
sysbenchdnf sysbench
写入测试(顺序写入)
bash
sysbench fileio --file-total-size4G --file-test-modewrite preparesysbench fileio --file-total-size4G --file-test-modewrite run
sysbench fileio --file-total-size4G --file-test-modewrite cleanup
读取测试(顺序读取)
bash
sysbench fileio --file-total-size4G --file-test-moderead run
更多模式
支持随机读写、混合读写等,通过 --file-test-mode 参数指定(如 randwrite、readwrite)。
4. 使用 fio 命令(专业级 IO 测试)
fio 是功能强大的 IO 基准测试工具,支持自定义多种测试场景(适合 SSD/HDD/RAID)。
安装
bash
fiodnf fio
顺序写入测试
bash
fio write-test /mnt/test.fio 1M 4G libaio write
顺序读取测试
bash
fio read-test /mnt/test.fio 1M 4G libaio read
参数说明
bs:块大小,size:测试文件大小,rw:读写模式(write/read/randwrite等)。direct=1:跳过系统缓存,直接操作磁盘。runtime=60:测试持续 60 秒(time_based模式)。
5. 注意事项
- 测试文件位置:确保测试文件位于目标硬盘 / 分区,避免跨设备影响结果。
- 权限:写入测试可能需要管理员权限(使用
sudo)。 - 缓存影响:测试前清除系统缓存(如
sync && echo 3 > /proc/sys/vm/drop_caches),避免内存缓存干扰。 - 多次测试:建议多次测试取平均值,减少偶然因素影响。
工具对比
| 工具 | 优势 | 适用场景 |
|---|---|---|
dd |
简单易用,无需额外安装 | 快速临时测试 |
hdparm |
专注读取速度 | HDD 基础性能评估 |
sysbench |
支持多种 IO 模式 | 综合 IO 性能测试 |
fio |
高度自定义,功能强大 | 专业级性能测试、调优 |
根据需求选择合适的工具,日常快速测试推荐 dd 或 hdparm,专业场景建议使用 fio。