linux操作系统自带dd命令,可用来做磁盘IO读写性能测试

1、测试工具和用例

a、测试用例-写入到磁盘(异步,最后一次性写入磁盘)
 dd bs=1M count=128 if=/dev/zero of=test conv=fdatasync

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

b、测试用例-写入到磁盘(同步,边写边同步到磁盘)

     dd bs=1M count=128 if=/dev/zero of=test oflag=dsync

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


2、测试过程

    dd if=/dev/dm-6 of=/dev/null bs=1k count=10000 iflag=direct

                                  ###读取速率,每块1k。常用来测试数据库IO延迟等

dd命令测磁盘的步骤:

 touch /var/1GB.FILE    //建立空文件。

 time dd if=/dev/zero  of=/var/1GB.FILE bs=1024 count=1000000        ###从/dev/zero复制到/var/下,使1GB.FILE空文件变为bs*count大小

磁盘读写测试--基于dd工具_文件读写

3、数据库测试总结

a、数据经常把bs块分为1k、2k、4k、8k、12k,1M、2M、4M、8M、12M,以及更大的块来测试得写。一般情况下对于一个1G大小的文件读写比1024个1M大小的文件读写性能要好很多、执行时间也会很快;