> Linux教程 > 系统运维 >

Linux服务器测试硬盘读写速度的命令:dd使用方法

需要测试硬盘的读写速度,测试的方法很多,本人一般是使用Linux 自带的dd命令测试硬盘的读写速度。

time有计时作用,dd用于复制,从if读出,写到of。if=/dev/zero不产生IO,因此可以用来测试纯写速度。同理of=/dev/null不产生IO,可以用来测试纯读速度。bs是每次读或写的大小,即一个块的大小,count是读写块的数量。

 

在使用前首先了解两个特殊设备
/dev/null 伪设备,回收站.写该文件不会产生IO
/dev/zero 伪设备,会产生空字符流,对它不会产生IO

 

测试纯写速度

time dd if=/dev/zero of=/test.dbf bs=8k count=300000

结果:

root@ubuntu:~# time dd if=/dev/zero of=/test.dbf bs=8k count=300000
300000+0 records in
300000+0 records out
2457600000 bytes (2.5 GB) copied, 21.6535 s, 113 MB/s

real    0m21.868s
user    0m0.072s
sys     0m3.836s

我的这台破服务器写速度:113 MB/s

 

测试纯读速度

time dd if=/test.dbf of=/dev/null bs=8k


root@ubuntu:~#  time dd if=/test.dbf of=/dev/null bs=8k
300000+0 records in
300000+0 records out
2457600000 bytes (2.5 GB) copied, 22.5282 s, 109 MB/s

real    0m22.530s
user    0m0.084s
sys     0m1.964s

读取的速度更慢:109 MB/s

 

QQ没有登录就不截图了,直接复制的结果:

备注:理论上测试复制量越大测试结果越准确。

 

网上down的方法。一样的。

1.测/目录所在磁盘的纯写速度:

 time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file

2.测/目录所在磁盘的纯读速度:

time dd if=/1Gb.file bs=64k |dd of=/dev/null

3.测读写速度:

time dd if=/1Gb.file of=/data0/2.Gb.file bs=64k  

理论上复制量越大测试越准确。


 
正常测试的时候可能不止测试一边,可能会需要很多遍求取平均值,这个测试结果在普通的重定向是没有效果的 之后 google 了一下 用下面的方式重定向到一个文件
 
dd if=/dev/zero of=/var/test bs=8k count=1000000  2>> info
 
这样测试的结果就到info文件里面了

 

另外测试阿里云的云服务器的读写速度超慢,才30左右。。。我靠。。



(责任编辑:IT)