测试方式:使用dd指令,对磁盘进行连续写入,不使用内存缓冲区,每次写入8k的数据,总共写入20万次,产生1.6G大小的文件。

测试指令:dd if=/dev/zero of=/data01/test.dbf bs=8k count=200000 conv=fdatasync

----------------------------------------------

正确的使用dd进行磁盘读写速度测试

dd是Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换,所以可以用来测试硬盘的顺序读写能力。可以写文件,可以写裸设备。

dd语法

---------------------------------------------------------

功能说明:读取,转换并输出数据。

语  法:dd [bs=][cbs=][conv=][count=][ibs=][if=][obs=][of=][seek=][skip=][--help][--version]

补充说明:dd可从标准输入或文件读取数据,依指定的格式来转换数据,再输出到文件,设备或标准输出。

参  数:

bs=   将ibs( 输入)与obs(输出)设成指定的字节数。

cbs=   转换时,每次只转换指定的字节数。

conv=   指定文件转换的方式。

count=   仅读取指定的区块数。

ibs=   每次读取的字节数。

if=   从文件读取。

obs=   每次输出的字节数。

of=   输出到文件。

seek=   一开始输出时,跳过指定的区块数。

skip=   一开始读取时,跳过指定的区块数。

--help   帮助。

--version   显示版本信息。

dd常用参数详解

---------------------------------------------------------

if=xxx  从xxx读取,如if=/dev/zero,该设备无穷尽地提供0,(不产生读磁盘IO)

of=xxx  向xxx写出,可以写文件,可以写裸设备。如of=/dev/null,"黑洞",它等价于一个只写文件. 所有写入它的内容都会永远丢失. (不产生写磁盘IO)

bs=8k  每次读或写的大小,即一个块的大小。

count=xxx  读写块的总数量。

避免操作系统“写缓存”干扰测试成绩,使用sync、fsync、fdatasync

---------------------------------------------------------

关于sync、fsync、fdatasync请参考:http://elf8848.iteye.com/blog/2088986

dd bs=8k count=4k if=/dev/zero of=test.log conv=fsync

dd bs=8k count=4k if=/dev/zero of=test.log conv=fdatasync

dd bs=8k count=4k if=/dev/zero of=test.log oflag=dsync

dd bs=8k count=4k if=/dev/zero of=test.log  默认“写缓存”启作用

dd bs=8k count=4k if=/dev/zero of=test.log conv=sync   “写缓存”启作用

dd bs=8k count=4k if=/dev/zero of=test.log; sync   “写缓存”启作用

dd bs=8k count=4k if=/dev/zero of=test.log conv=fsync

加入这个参数后,dd命令执行到最后会真正执行一次“同步(sync)”操作,,这样算出来的时间才是比较符合实际使用结果的。conv=fsync表示把文件的“数据”和“metadata”都写入磁盘(metadata包括size、访问时间st_atime & st_mtime等等),因为文件的数据和metadata通常存在硬盘的不同地方,因此fsync至少需要两次IO写操作,fsync 与fdatasync相差不大。(重要,最有参考价值)

dd bs=8k count=4k if=/dev/zero of=test.log conv=fdatasync

加入这个参数后,dd命令执行到最后会真正执行一次“同步(sync)”操作,,这样算出来的时间才是比较符合实际使用结果的。conv=fdatasync表示只把文件的“数据”写入磁盘,fsync 与fdatasync相差不大。(重要,最有参考价值)

dd bs=8k count=4k if=/dev/zero of=test.log oflag=dsync

加入这个参数后,每次读取8k后就要先把这8k写入磁盘,然后再读取下面一个8k,一共重复4K次。这是最慢的一种方式了。

dd bs=8k count=4k if=/dev/zero of=test

没加关于操作系统“写缓存”的参数,默认“写缓存”启作用。dd先把数据写的操作系统“写缓存”,就完成了写操作。通常称为update的系统守护进程会周期性地(一般每隔30秒)调用sync函数,把“写缓存”中的数据刷入磁盘。因为“写缓存”起作用,你会测试出一个超级快的性能。

如:163840000 bytes (164 MB) copied, 0.742906 seconds, 221 MB/s

dd bs=8k count=4k if=/dev/zero of=test conv=sync

conv=sync参数明确“写缓存”启作用,默认值就是conv=sync

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

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

裸设备测试

----------------------

1、裸设备到文件系统

dd if=/dev/rsd1b of=/backup/df1.dbf bs=8k skip=8 count=3841

2、文件系统到裸设备

dd if=/backup/df1.dbf of=/dev/rsd2b bs=8k seek=8

更多关于裸设备,请参考:http://czmmiao.iteye.com/blog/1748748

转载自:http://elf8848.iteye.com/blog/2089055

dd命令测试linux磁盘io情况,【LINUX】正确的使用dd进行磁盘读写速度测试相关推荐

  1. dd命令测试linux磁盘io情况,dd命令:做硬盘IO性能测试

    一.dd复制转换 1.dd:convert and copy a file 文件转换和复制,复制操作底层(块) DESCRIPTION:Copy a file, converting and form ...

  2. linux nmon 进程io,Linux服务器用iotop命令分析服务器磁盘IO情况

    Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦. 如果会systemtap, 或者blktrace这些事 ...

  3. linux查看IO情况

    Linux上使用iftop可以查看网络使用情况,使用iotop可以查看磁盘io使用情况 安装 yum install iftop yum install iotop 1. 网络IO 查看网络情况 if ...

  4. Linux内核IO追踪:用GDB调试,一个磁盘IO的流程是什么样的

    Table of Contents 构建内核 产生IO写入的程序 追踪到兔子洞 准备步骤 进入FS层:我正在使用的fs是XFS 潜入块层 进入块驱动程序层:我的块驱动程序是SCSI 回到fs层,研究内 ...

  5. 在不重启Linux服务器的情况下在线识别新添加的磁盘

    前言  在我们使用 Linux系统的过程中,有时会因为初始时磁盘空间的分配不足,使用中途需要将挂载点扩容的情况,这时候就需要我们挂载新的磁盘到服务器上,但是如果我们在 Linux 运行过程中挂载新磁盘 ...

  6. linux lvm使用情况,Linux LVM系列(一)lvm使用

    简介 逻辑卷管理LVM是一个多才多艺的硬盘系统工具.无论在Linux或者其他类似的系统,都是非常的好用.传统分区使用固定大小分区,重新调整大小十分麻烦.但是,LVM可以创建和管理"逻辑&qu ...

  7. linux buffer io error,Linux Buffer I/O error on device dm-4, logical block,dm-4logical

    Linux Buffer I/O error on device dm-4, logical block,dm-4logical Linux服务器日志(Oracle Linux Server rele ...

  8. linux系统io错误,linux系统IO操作

    本文重点说明下面内容: 什么是标准IO,什么是文件IO? 什么是Direct IO? O_SYNC标识有什么意义? 各个层面的缓存如何同步? 还在page cache中的脏页可以读写吗? IO路径上的 ...

  9. linux命令查看磁盘使用情况,linux查看磁盘使用情况命令

    统一磁盘整体情况,包括磁盘大小,已使用,可用 df -hT [[email protected] ~]# df -hT Filesystem Type Size Used Avail Use% Mou ...

最新文章

  1. Go 学习笔记(33)— Go 自定义类型 type(自定义结构体、结构体初始化、结构体内嵌、自定义接口)
  2. 自动驾驶L3量产追梦:如何跨过车规级和低成本门槛?
  3. 【小技巧】notepad++ 输入中文无响应
  4. VC返回文件所在的路径
  5. 初识推荐算法---算法背景、算法概念介绍、推荐信息选取、常用推荐算法简介
  6. Windows 2008 限制IP连接方法
  7. CCNA交换技术综合实验步骤详解
  8. 蓝桥杯真题:杨辉三角形
  9. 射频识别技术漫谈(17)——射频卡中数据的存储形式
  10. 74cms3.0 SQL注入
  11. 中国科学院大学计算机复试,被中国科学院北京计算所录取了...(复试经验)
  12. edm邮件直投_EDM邮件直投专家_EDM邮件直投专家官方版下载 - 邮件处理 - 绿软家园...
  13. Nacos 配置不生效
  14. Jmeter 测试12306 获取火车票订单接口
  15. java必备英语单词
  16. 【公式编辑测试】解析几何-三角形外心重心垂心内心公式
  17. 【STM32F429开发板用户手册】第34章 STM32F429的SPI总线应用之驱动DAC8501(双路输出,16bit分辨率,0-5V)
  18. 全自动加药装置如何选型?
  19. B端产品设计之原型设计
  20. 服务器被黑,帮凶竟然是Redis

热门文章

  1. 新手怎么读懂一个中型的Django项目
  2. C/C++ unsigned char*类型
  3. python如何获取鼠标点击图片的像素点坐标
  4. python numpy np.argsort()(返回将对数组进行排序的索引)(不懂区别?)
  5. python 相对路径
  6. xsd java引用_web.xml文件的 xsd引用(或dtd引用)学习
  7. bitnamigitlab_100%可用不坑爹的BitNami GitLab安装教程
  8. sybase 事务插入时不可查询_InnoDB事务与锁
  9. clion 查看内容窗口_CLion精华笔记
  10. mysql 透明代理_透明代理MySQL_基于zbus的MySQL透明代理(100行)-云栖社区