dd命令详解及利用dd测试磁盘性能

linux下dd命令详解
名称: dd
使用权限: 所有使用者
manpage 定义: convert and copy a file

使用方式:
dd [option]

dd --help

info dd

dd --version

输入或输出
dd if=[STDIN] of=[STDOUT]

强迫输入或输出的Size为多少Bytes
bs: dd -ibs=[BYTE] -obs=[SIZE]

语法:dd [选项]

if =输入文件(或设备名称)。

of =输出文件(或设备名称)。

ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。

skip = blocks 跳过读入缓冲区开头的ibs*blocks块。

obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。

bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。

cbs = byte 一次转换bytes字节。

count=blocks 只拷贝输入的blocks块。

conv = ASCII 把EBCDIC码转换为ASCIl码。

conv = ebcdic 把ASCIl码转换为EBCDIC码。

conv = ibm 把ASCIl码转换为alternate EBCDIC码。

conv = block 把变动位转换成固定字符。

conv = ublock 把固定位转换成变动位。

conv = ucase 把字母由小写转换为大写。

conv = lcase 把字母由大写转换为小写。

conv = notrunc 不截短输出文件。

conv = swab 交换每一对输入字节。

conv = noerror 出错时不停止处理。

conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)。

noerror
出错时不停止。

notrunc
不截短输出文件。

sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

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

认识下两个"伪文件"

/dev/null

位桶文件(bit bucket),就是我们常说的空文件。是一个输出设备。

任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.

/dev/zero

是一个输入设备,你可你用它来初始化文件。

该设备无穷尽地提供0(是ASCII 0 就是NULL),可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入NULL。
    像/dev/null一样, /dev/zero也是一个伪文件, 但它实际上产生连续不断的null的流(二进制的零流,而不是ASCII型的). 写入它的输出会丢失不见, 而从/dev/zero读出一连串的null也比较困难, 虽然这也能通过od或一个十六进制编辑器来做到. /dev/zero主要的用处是用来创建一个指定长度用于初始化的空文件,就像临时交换文件.

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

使用dd来测试硬盘读写速度
dd只能提供一个大概的测试结果,而且是连续IO 而不是随机IO ,理论上文件规模越大,测试结果越准确。
读性能测试
# time dd  iflag=direct,nonblock  if=/dev/sda2 of=/dev/null bs=8k count=8388608

因为/dev/sda2是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力。

写测试
# time dd oflag=direct,nonblock if=/dev/zero f=/opt/iotest bs=8k count=8388608 
因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。 
读写测试
# time dd iflag=direct,nonblock oflag=direct,nonblock if=/dev/sda2 f=/opt/iotest bs=8k count=8388608  
注:bs是一次io读的规模,理论上bs越大,所测得性能越高
count是读多少个"bs",也可以写成count=16G

规避掉文件系统cache,直接读写,不使用buffer cache

iflag=direct,nonblock

oflag=direct,nonblock

iflag=cio

oflag=cio

direct 模式就是把写入请求直接封装成io 指令发到磁盘

非direct 模式,就把数据写入系统缓存,然后就认为io 成功,并由操作系统决定缓存中的数据什么时候被写入磁盘

转自:http://blog.sina.com.cn/s/blog_61c006ea0100lbk1.html

转载于:https://www.cnblogs.com/caogen1991/p/9881526.html

【转】dd命令详解及利用dd测试磁盘性能相关推荐

  1. linux dd iflag oflag,【转】dd命令详解及利用dd测试磁盘性能

    linux下dd命令详解 名称: dd 使用权限: 所有使用者 manpage 定义: convert and copy a file 使用方式: dd [option] dd --help info ...

  2. linux中dd命令详解,Linux中DD命令详解

    Linux中DD命令详解 1.dd命令简介 功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换.可以用该命令实现DOS下的diskcopy命令的作用.先用dd命令把软盘上的 ...

  3. Linux系统之dd命令详解

    Linux系统之dd命令详解 一.dd命令介绍 1.dd介绍 2.dd的相关解释 二.创建指定大小的文件 三.给磁盘的分区做备份 1.磁盘分区备份 2.磁盘分区还原 四.清空磁盘 五.给磁盘备份 1. ...

  4. linux下dd命令详解

    linux下dd命令详解    名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果 ...

  5. (传送门)linux命令总结dd命令详解

    linux命令总结dd命令详解 https://www.cnblogs.com/ginvip/p/6370836.html 懒癌末期,不想花时间拷贝内容+排版,而且,原文排版就已经很棒了,我在这里只是 ...

  6. Linux之dd命令详解

    Linux-dd命令详解 dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 名称: dd  使用权限: 所有使用者dd 这个指令 ...

  7. linux dd销毁数据,dd命令详解(清除硬盘数据)

    dd 是Linux/UNIX下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝 的同时进行指定的转换. 1.命令简介 dd的主要选项: 指定数字的地方若以下列字符结尾乘以相应的数字: ...

  8. linux dd删目录,dd命令详解(清除硬盘数据)

    dd 是Linux/UNIX下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝 的同时进行指定的转换. 1.命令简介 dd的主要选项: 指定数字的地方若以下列字符结尾乘以相应的数字: ...

  9. 内核参数 linux dd,Linux dd 命令详解(测磁盘的吞吐量)

    一.dd命令的解释 dd命令主要是用来块拷贝一个指定大小的文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2 参数注 ...

最新文章

  1. python中实例方法与实例属性-Python中的类属性和实例属性以及静态方法和类方法...
  2. uniapp光标自动定义到文本框_如何在Mac上的照片应用中创建自定义日历
  3. 顶宽的div中的英文不能自动换行
  4. Sublime Text3中文环境设置
  5. 干货收藏!639页《深度学习:Deep Learning》图文并茂课程PPT
  6. 计算机任务类别 搜索服务,服务删除后仍要求启动 计划任务里找不到 该怎么办...
  7. python语法中的网络编程_(六)python语法之网络编程
  8. JUC总览,来自汪文君整理
  9. 应用开发框架之——数据字典、原数据、模板
  10. mobi电子书如何用安卓手机打开?
  11. jsp实现登录验证码
  12. 【学习OpenCV4】OpenCV4入门介绍
  13. Matlab机器人工具箱(3):双臂操作(从模型建立到轨迹规划)
  14. 【数据结构】 栈的知识点
  15. ​内嵌物理知识神经网络(PINN)是个坑吗?
  16. 智微JMS901量产工具软件+固件,JMS901双接口U盘成功量产教程分享
  17. 弄懂“三门问题”,成功概率翻倍,来用代码验证一下
  18. Camera几个重要名词概念
  19. Java中字符串为什么不以\0结尾
  20. 滑动窗口大小为什么不能是2的n次方大小

热门文章

  1. Python学习_006.Python简单错误如何处理-守破离学习法_程序员修炼手册
  2. 神经网络系统技术是什么,神经网络系统技术应用
  3. GRAFANA接入第三方SSO
  4. 冶炼金属【暴力枚举 + 二分 + 二元不等式】
  5. 时间序列分析(TSA)
  6. ImportError: cannot import name ‘_maybe_get_pandas_wrapper_freq‘ from ‘statsmodels.tsa.filters._util
  7. 将D盘多余空间分配给C盘
  8. 用Cadence Virtuoso IC617仿真V-I特性曲线
  9. 【Spring】SpringIOC容器启动过程源码分析 以及 循环依赖问题
  10. python 推导式