文档章节

dd测试硬盘性能

 小小人故事
发布于 2015/12/25 10:29
字数 1088
阅读 17
收藏 2

下面直接介绍几种常见的DD命令,先看一下他的区别~

dd if=/dev/zero of=test bs=64K count=1
dd if=/dev/zero of=test bs=64K  count=1; sync
dd if=/dev/zero of=test bs=64K  count=1 conv=fdatasync
dd if=/dev/zero of=test bs=64K  count=1 oflag=dsync


这四条DD命令区别在于内存中写缓存的处理方式。

1.

dd if=/dev/zero of=test bs=64K  count=1

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

实际运行结果:

记录了1+0 的读入
记录了1+0 的写出
104857600字节(105 MB)已复制,2.00737 秒,52.2 MB/秒

2.

dd if=/dev/zero of=test bs=64K  count=1; sync

  和前面1中的完全一样。分号隔开的只是先后两个独立的命令。当sync命令准备开始往磁盘上真正写入数据的时候,前面dd命令已经把错误的“写入速度”值显示在屏幕上了。所以你还是得不到真正的写入速度。

实际运行结果:

记录了1+0 的读入
记录了1+0 的写出
104857600字节(105 MB)已复制,2.06546 秒,50.8 MB/秒

3.

dd if=/dev/zero of=test bs=64K count=1 conv=fdatasync

  加入这个参数后,dd命令执行到最后会真正执行一次“同步(sync)”操作,所以这时候你得到的是读取这128M数据到内存并写入到磁盘上所需的时间,这样算出来的时间才是比较符合实际使用结果的。

实际运行结果:

记录了1+0 的读入
记录了1+0 的写出
104857600字节(105 MB)已复制,2.59843 秒,40.4 MB/秒

4.

dd if=/dev/zero of=test bs=64K count=1 oflag=dsync

  加入这个参数后,dd在执行时每次都会进行同步写入操作。也就是说,这条命令每次读取64k后就要先把这64k写入磁盘,然后再读取下面这64k,一共重复128次。这可能是最慢的一种方式了,因为基本上没有用到写缓存(write cache)。

实际运行结果:

记录了1+0 的读入
记录了1+0 的写出
104857600字节(105 MB)已复制,2.0844 秒,50.3 MB/秒

  一般来说,第四种方法是最严格的,可以模拟数据库的插入操作,所以很慢,也是用来测试vps硬盘性能标准的一条标杆,一般来说测试结果,如果超过10M,对正常建站就无影响。超过50M,就是非常给力状态,看了这个vps硬盘性能非常的好,DD速度达到了78.9MB/s。

  在这几条命令中,bs=64k表示同时读入/输出的块大小为64k个字节,count=4k表示拷贝块的个数为4000个,如果测试再严格一点,我们运行1G数据量的DD:

dd if=/dev/zero of=test1 bs=64k count=16k oflag=dsync
表示每个块大小为64k个字节,测试16k个数量的块,实际测试结果:

记录了16384+0 的读入
记录了16384+0 的写出
1073741824字节(1.1 GB)已复制,125.424 秒,8.6 MB/秒

#阿里云硬盘真够烂的

#看另一台国外的vps
[root@166087 ~]# dd if=/dev/zero of=test1 bs=64k count=16k oflag=dsync
记录了16384+0 的读入
记录了16384+0 的写出
1073741824字节(1.1 GB)已复制,15.0148 秒,71.5 MB/秒

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


© 著作权归作者所有

共有 人打赏支持
粉丝 3
博文 73
码字总数 22668
作品 0
昌平
私信 提问

暂无文章

结合lucene谈谈日期的压缩问题

说起日期值的压缩,一般容易想到的办法是将日期转化成long类型,然后再通过变长整形进行压缩,我算了一下按照毫秒来算最多占用5个字节(可以通过“谈谈变长整型”中的表查看),确实节省了部...

FAT_mt
34分钟前
0
0
导出私有函数与私有变量

在Go语言中, package中包含函数与变量通过identifier的首字母是否大写来决定它是否可以被其它package所访问。当一个函数或变量名称为小写字母时,默认是无法被其他package引用的. 有没有办法...

xtof
34分钟前
0
0
new Date() 在Safari下的 Invalid Date问题

问题复现 var timeStr = '2018-11-11 00:00:00';var time = new Date(timeStr);// error: Invalid Date... 在safari浏览器下,time为Invalid Date, 导致后面代码执行错误; 其他浏览器诸...

会写代码的husky
39分钟前
2
0
0009-如何升级Cloudera Manager和CDH

1.文档编写目的 本文档讲述如何升级Cloudera Manager和CDH,通过本文档,您将学习到以下知识: 1.如何对Cloudera Manager进行停机升级 2.如何对CDH进行停机升级 3.如何在不影响集群作业的情况...

Hadoop实操
49分钟前
1
0
vue2中引用 better-scroll的方法

文章主要介绍了vue2中引用better-scroll和使用 better-scroll的方法,使用时有三个要点及注意事项在文中给大家详细介绍 ,需要的朋友可以参考下 使用时有三个要点: 一:html部分 <div class...

前端攻城老湿
59分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部