使用dd测试硬盘读写速度,实测腾讯云阿里云服务器

测试方法:

1、 dd bs=64k count=4k if=/dev/zero of=test

没有加任何参数,dd默认的方式不包括“同步(sync)”命令。也就是说,dd命令完成前并没有让系统真正把文件写到磁盘上。所以以上命令只是单纯地把这128MB的数据读到内存缓冲当中(写缓存[write cache])。所以你得到的将是一个超级快的速度。因为其实dd给你的只是读取速度,直到dd完成后系统才开始真正往磁盘上写数据,但这个速度你是看不到了。所以如果这个速度很快,没有什么作用。

2、dd bs=64k count=4k if=/dev/zero of=test oflag=dsync

加入这个参数后,dd在执行时每次都会进行同步写入操作。也就是说,这条命令每次读取64k后就要先把这64k写入磁盘,然后再读取下面这64k,一共重复128次。这可能是最慢的一种方式了,因为基本上没有用到写缓存(write cache)。这种方法是最严格的,可以模拟数据库的插入操作,所以很慢,也是用来测试vps硬盘性能标准的一条标杆,一般来说测试结果,如果超过10M,对正常建站就无影响。超过50M,就是非常给力状态。

腾讯云

[root@VM_37_104_centos ~]# 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, 9.98703 s, 246 MB/s

real 0m10.027s
user 0m0.071s
sys 0m4.413s

[root@VM_37_104_centos ~]# time dd if=/dev/zero of=test bs=64k count=16k oflag=dsync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 20.3013 s, 52.9 MB/s

real 0m20.308s
user 0m0.014s
sys 0m2.724s

阿里云

[root@AY13101461dcZ ~]# 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, 59.6273 s, 41.2 MB/s

real 1m0.519s
user 0m0.048s
sys 0m2.497s
[root@AY13101461dcZ ~]# time dd if=/dev/zero of=test bs=64k count=16k oflag=dsync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 213.191 s, 5.0 MB/s

pc台式7200转500G硬盘

[root@localhost ~]# 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, 29.4278 s, 83.5 MB/s

real 0m29.429s
user 0m0.053s
sys 0m2.154s

[root@localhost ~]# time dd if=/dev/zero of=test bs=64k count=16k oflag=dsync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 1015.61 s, 1.1 MB/s

real 16m55.609s
user 0m0.015s
sys 0m3.144s

dell r710  15000转300G硬盘 raid1磁盘阵列

[smsu@localhost ~]$ 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, 2.78841 s, 881 MB/s

real 0m2.790s
user 0m0.061s
sys 0m2.728s
[smsu@localhost ~]$ time dd if=/dev/zero of=test bs=64k count=16k oflag=dsync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 264.978 s, 4.1 MB/s

real 4m24.980s
user 0m0.039s
sys 0m4.611s

DD命令测试硬盘应该很清楚了,通常我们测试用第二种即可,当然DD越快并不能代表服务器的性能好坏,普通硬盘的服务器执行DD命令结果在30M左右就不错了,另外,执行DD命令测试硬盘IO性能,对硬盘的损害很大,不建议多次或长时间尝试!

您可以选择一种方式赞助本站