dd命令详解

【基本参数详解】

dd

复制

  

if

if=/dev/zero不产生IO

of

目的

of=/dev/null不产生IO

bs

块大小

  

count

读写块的数量

  

iflag/oflag

dd做读写测试时,要加两个参数 iflag=nocache oflag=direct 参数。

没有的话dd有时会显示从内存中传输数据的结果,速度会不准确。

iflag=nocache
oflag=direct

seek

seek的作用是跳过输出文件中指定大小的部分,这就达到了创建大文件,但是并不实际写入的目的。

当然,因为不实际写入硬盘,所以你在容量只有10G的硬盘上创建100G的此类文件都是可以的

  

示例:

dd if=/dev/zero of=test bs=1M count=0 seek=100000 oflag=direct

   

【测试读写速度】

Linux服务器装好系统之后,想要知道硬盘的读写是否能满足服务的需要,如果不满足硬盘的IO就是服务的一个瓶颈。所以我们需要测试硬盘的读写速度,测试的方法很多,下面是使用Linux 自带的dd命令测试硬盘的读写速度。

   

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

   

/data目录所在磁盘的纯写速度

[root@nagios ~]# time dd if=/dev/zero of=/var/test bs=8k count=1000000 oflag=direct

   

/data目录所在磁盘的纯读速度

[root@nagios ~]# time dd if=/var/test of=/dev/null bs=8k count=1000000 iflag=nocache

   

读写速度

[root@nagios ~]# time dd if=/var/test of=/tmp/test bs=8k count=1000000 iflag=nocache

   

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

   

正常测试的时候可能不止测试一边,可能会需要很多遍求取平均值,这个测试结果在普通的重定向是没有效果的

用下面的方式可以将结果重定向到文件

dd if=/dev/zero of=/var/test bs=8k count=1000000 2>> info

 

原文地址:https://www.cnblogs.com/liuxia912/p/12029268.html