在Linux系统中,测试硬盘读写速度最常用的工具就是dd命令,基本语法为:
dd if=输入文件 of=输出文件 bs=单次读写字节数 count=读写次数
一、 测试硬盘写速度
1. 先切换到临时目录并创建测试文件,避免占用系统重要分区空间:
cd /tmp/
touch test
2. 测试1GB大文件写入速度(bs=1M表示单次读写1MB,count=1024表示读写1024次,总计1GB):
dd if=/dev/zero of=/tmp/test bs=1M count=1024
3. 测试4K小文件写入速度(更贴近日常小文件读写场景):
dd if=/dev/zero of=/tmp/test bs=4k count=100000
4. 测试真实硬件写入速度(添加oflag=direct跳过内存缓存;oflag=sync跳过硬盘缓存,不带参数则包含缓存速度):
dd if=/dev/zero of=/tmp/test bs=4k count=1000000 oflag=direct
小知识:/dev/zero是Linux的特殊设备文件,可提供无限的空字符,常用来做读写测试或填充文件。
二、 测试硬盘读速度
通过读取物理分区数据并写入空设备(/dev/null,写入无IO消耗),精准测试纯读取速度,按Ctrl+c终止测试:
time dd if=/dev/sdb of=/dev/null bs=4k
注意:将/dev/sdb替换为你要测试的实际磁盘分区。
三、 测试硬盘同时读写能力
读取/dev/zero数据并写入实际文件,让硬盘同时承担读写IO,模拟真实工作负载:
time dd if=/dev/zero of=/tmp/test bs=4k