正确的使用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
- 浏览: 103518 次
- 性别:
- 来自: 北京
相关推荐
盘速度测试器 绿色版 <br>首先要连接上U盘之后才能运行本软件开始测试,写入测试较慢, 读取的比较快。 <br> 一般插入U盘再运行该软件这里直接就是你的U盘符不用再选择 <br>1:最快,在写入这边就是最快的...
linux的dd命令克隆磁盘方法.docx
本文设计vivado的pcie配置、uboot设备树修改、kernel源码修改以及基于dd命令进行NVMe的ssd读写速度的测试。本文所有内容均亲测可行,并在自设计的板卡上验证通过的。本文所涉及的uboot和kernel源码均基于xilinx官方...
USB磁盘分配盘符要用的来下载吧DI1000DD.SYS 据说是分配盘的
dd软件dd软件dd软件dd软件dd软件dd软件dd软件
第三方固件DD-WRT使用教程 第三方固件DD-WRT使用教程
总结了linux下dd命令实用技巧,先简要介绍dd的参数,后边通过几个实例介绍dd的应用,参考了其他网友的资料 上传者非原创,内有原创者博客链接
本文介绍在Linux系统下使用dd命令行工具制作一个 Live USB。 dd可以将任何Linux发行版的iso写入U盘,本文假设iso镜像为64位ubuntu-desktop-amd64.iso,存放在Downloads目录下,在ubuntu系统上进行操作。以下操作...
重建ASM磁盘组的,1: 保证使用ASM的数据库事先已经用RMAN做了备份 2: 关闭ASM实例 3: 使用dd命令清除ASM磁盘上的元数据 4: 重建ASM磁盘组 5: 恢复数据库
dd命令使用
1 安装驱动() 2 驱动.初始化(目标进程ID) 注意: //========== 1 安装驱动的时候,火绒会报提示,信任即可 2 32位系统无法使用 3 亲测win10 1809可用,win7可用
利用dd命令救援一个毁坏的磁盘系统,运维工程师必备文档,希望大家喜欢
详细介绍了各种dd命令的含义,以及如何使用dd命令
使用Python驱动DD键盘,可以破解装有安全键盘的程序,控制输入
5_0_AdminGuide_759-0007-0002.pdf DD设备使用手册
DD驱动级鼠键模块 易语言模块分享 带源码 欢迎下载
Linux dd命令使用详解.docx
win dd 工具下载---解压直接使用,非常方便,不用安装任何其他其他东西 执行命令完整和linux一致
本文主要是关于大功率三极管的相关介绍,并着重对大功率三极管3DD15进行了详尽的阐述。 大功率三极管 大功率三极管一般是指耗散功率大于1w的三极管。可广泛应用于高、中、低频功率放大、开关电路,稳压电路,模拟...