记录一下在 Linux 下测试硬盘读写速度的命令和方法。

dd

使用 dd 测试写速度,千万有注意 of 后接的文件必须是一个不存在的文件,否则可能造成数据丢失!

sync; dd if=/dev/zero of=/tmp/tempfile bs=1M count=1024; sync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.55331 s, 421 MB/s

同样的道理,如果要测试一个外部存储,需要知道挂载点,然后用 dd 命令:

sync; dd if=/dev/zero of=/media/user/MyUSB/tempfile bs=1M count=1024; sync

使用 dd 测试读取速度,注意这里的 if 后需要接上一个命令生成的文件:

dd if=/tmp/tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.271083 s, 4.0 GB/s

清楚 cache,准确的测试真实的读速度:

sudo /sbin/sysctl -w vm.drop_caches=3
dd if=/tmp/tempfile of=/dev/null bs=1M count=1024

hdparm

使用 hdparm 也可以对硬盘进行测试。

apt install hdparm

先用 lsblk 或者 fdisk -l 来查看设备信息,一般磁盘都是 /dev/sda 这样。

然后用如下命令测试:

sudo hdparm -Tt /dev/sda

/dev/sda:
 Timing cached reads:   31236 MB in  1.99 seconds = 15733.75 MB/sec
 Timing buffered disk reads: 504 MB in  3.01 seconds = 167.51 MB/sec

reference