2024年11月如何使用DD命令测试Linux磁盘的性能?

发布时间:

  ⑴Linux系统下DD命令是常用的命令之一,同时DD命令的使用范围也比较广泛。除了已知的可以用DD命令来复制文件外,还可以用DD命令来测试磁盘的性能。那么如何使用DD命令测试Linux磁盘的性能?

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

  ⑶dd bs=k count=k if=/dev/zero of=test

  ⑷dd bs=k count=k if=/dev/zero of=test; sync

  ⑸dd bs=k count=k if=/dev/zero of=test conv=fdatasync

  ⑹dd bs=k count=k if=/dev/zero of=test oflag=dsync

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

  ⑻.dd bs=k count=k if=/dev/zero of=test

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

  ⑽ bytes ( MB copied, . seconds, MB/s

  ⑾.dd bs=k count=k if=/dev/zero of=test; sync

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

  ⒀ bytes ( MB copied, . seconds, MB/s

  ⒁.dd bs=k count=k if=/dev/zero of=test conv=fdatasync

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

  ⒃ bytes ( MB copied, . seconds, . MB/s

  ⒄.dd bs=k count=k if=/dev/zero of=test oflag=dsync

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

  ⒆ bytes ( MB copied, . seconds, . MB/s

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

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

  ⒉dd if=/dev/zero of=test bs=k count=k oflag=dsync

  ⒊表示每个块大小为k个字节,测试k个数量的块,实际测试结果:

  ⒋ bytes (. GB copied, . seconds, . MB/s

  ⒌以上就是使用DD命令测试Linux磁盘的性能的方法了,其实这个方法的原理还是使用DD命令的复制功能,通过文件转移的速度来测试磁盘的读写频率。