存储工具系列文章》主要介绍存储相关的测试和调试工具,包括不限于ddfiovdbenchiozoneiometercosbench等性能负载工具,及strace等调试工具。


dd,是 device driver 的缩写,它可以称得上是“Linux 世界中的搬运工”,它用来读取设备、文件中的内容,并原封不动地复制到指定位置。

1  dd参数解析

名称:

dd - 用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

语法:

dd [OPERAND]

dd OPTION

解析:

根据operand,拷贝一个文件,并进行转换。

bs=BYTES

设置一次读写BYTES字节(同ibs,obs);

cbs=BYTES

一次转换BYTES字节数;

ibs=BYTES

一次读取bytes字节;

obs=BYTES

一次写入bytes字节;

conv=CONV

将一个文件转换为制定的格,CONV可以为参数见“CONV参数说明”;

count=BLOCKS

只拷贝输入的BLOCKS块;

if=FILE

从文件FILE中读取数据(FILE可以是文件名,也可以是设备名称);

of=FILE

向文件FILE中写入数据(FILE可以是文件名,也可以是设备名称);

seek=BLOCKS

在出文件中,跳过开头的ibs*blocks块;

skip=BLOCKS

在输入文件中,跳过开头的ibs*blocks块;

iflag=FLAGS

指定读的方式FLAGS,参见“FLAGS参数说明”

oflag=FLAGS

指定写的方式FLAGS,参见“FLAGS参数说明”;

status=noxfer

suppress transfer statistics

CONV参数说明:

ascii -转换 EBCDIC 为 ASCII。

ebcdic -转换 ASCII 为 EBCDIC。

ibm -转换ASCII 为 alternate EBCDIC.

block -把每一行转换为长度为 cbs 的记录,不足部分用空格填充。

unblock-使每一行的长度都为 cbs ,不足部分用空格填充。

lcase -把大写字符转换为小写字符。

ucase -把小写字符转换为大写字符。

nocreat -不创建心的输出文件

notruncdo -不截短输出文件

swab -交换输入的每对字节。 Unlike the Unix dd, this works when an odd number of bytes are read. If the input file contains an odd number of bytes, the last byte is simply copied (since there is nothing to swap it with).

noerror -出错时不停止。

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

fdatasync -physically write output file data before finishing

fsync -同上,但也要写元数据

FLAGS参数说明:

append -append  mode  (makes  sense  only  for output; conv=notrunc sug-gested)

direct 读写数据采用直接IO方式;

directory 读写失败除非是directory;

dsync  读写数据采用同步IO;

sync   同上,但是针对是元数据

fullblock 堆积满block(accumulate full blocks of input )(iflag only);

nonblack 读写数据采用非阻塞IO方式

noatime 读写数据不更新访问时间

noctty -do not assign controlling terminal from file

nofollow -do not follow symlinks

OPTION说明:

--help

display this help and exit

--version

output version information and exit

2  测试实例

清单1:

要把一张软盘的内容拷贝到另一张软盘上,利用/tmp作为临时存储区。把源盘插入驱动器中,输入下述命令:

[root@RedHat home]#dd if =/dev/fd0 of = /tmp/tmpfile

拷贝完成后,将源盘从驱动器中取出,把目标盘插入,输入命令:

[root@RedHat home]# dd if = /tmp/tmpfile of =/dev/fd0

软盘拷贝完成后,应该将临时文件删除:

[root@RedHat home]#rm /tmp/tmpfile

清单2:

    采用dd测试硬盘的读写速度

Ø  可以通过使用dd if=/dev/zero of=/file 来测试磁盘的纯写入性能。

Ø  使用dd if=/file of=/dev/null 来测试磁盘的纯读取性能。

Ø  使用dd if=/file1 of=/file2 来测试磁盘的读写性能

测试硬盘的结果如下:

(1)测试纯写入性能


  1. [root@RedHat home]# dd if=/dev/zero of=test bs=8k count=10000 oflag=direct
  2. 10000+0 records in
  3. 10000+0 records out
  4. 81920000 bytes (82 MB) copied, 3.9123 s, 20.9 MB/s
结果为20.9 MB/s。

(1)测试纯读取性能


  1. [root@RedHat home]# dd if=test of=/dev/null bs=8k count=10000 iflag=direct
  2. 10000+0 records in
  3. 10000+0 records out
  4. 81920000 bytes (82 MB) copied, 0.424138 s, 193 MB/s

结果为193 MB/s。

文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux入门初识Linux32557 人正在系统学习中

[转帖]dd - Linux世界中的搬运工的更多相关文章

  1. [转帖]Linux操作系统中,*.zip、*.tar、*.tar.gz、*.tar.bz2、*.tar.xz、*.jar、*.7z等格式的压缩与解压

    Linux操作系统中,*.zip.*.tar.*.tar.gz.*.tar.bz2.*.tar.xz.*.jar.*.7z等格式的压缩与解压 https://blog.csdn.net/gatieme ...

  2. [转帖]Linux命令中特殊符号

    Linux命令中特殊符号 转自:http://blog.chinaunix.net/uid-16946891-id-5088144.html   在shell中常用的特殊符号罗列如下:# ; ;; . ...

  3. [转帖]Linux shell中2>&1的含义解释 (全网最全,看完就懂)

    Linux shell中2>&1的含义解释 (全网最全,看完就懂) https://blog.csdn.net/zhaominpro/article/details/82630528   ...

  4. Linux系统中的vi/vim指令【详解】

    vi是Unix世界里极为普遍的全屏幕文本编辑器,vim是它的改进版本Vi IMproved的简称.几乎可以说任何一台Unix机器都会提供这套软件. 只要简单的在Shell下执行vi就可以进入 vi 的 ...

  5. Linux内存中的Cache真的能被回收么?

    在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态: [root@tencent64 ~]# free       ...

  6. Linux内核中流量控制

    linux内核中提供了流量控制的相关处理功能,相关代码在net/sched目录下:而应用层上的控制是通过iproute2软件包中的tc来实现, tc和sched的关系就好象iptables和netfi ...

  7. linux学习过程中所需要看的一些书籍

    入门类 一直认为,在一个系统上学习开发之前,首先需要熟悉这个系统的使用.鉴于天朝的国情,绝大部分人第一个接触的操作系统就是Windows,因此对于这绝大部分人来说,如果要学习Linux开发,学会使用这 ...

  8. 调皮的程序员:Linux之父雕刻在Linux内核中的故事

    本文内容由公众号“格友”原创分享. 1.引言   (不羁的大神,连竖中指都这么帅) 因为LINUX操作系统的流行,Linus 已经成为地球人都知道的名人.虽然大家可能都听过钱钟书先生的名言:“假如你吃 ...

  9. [转帖]dd命令详解

    dd命令详解 https://czmmiao.iteye.com/blog/1748748 之前一直对linux的命令很恐惧 现在发现 其实不是那么复杂 要仔细学习就可以了 比如 dd = disk ...

  10. 【转帖】Linux发行版:CentOS、Ubuntu、RedHat、Android、Tizen、MeeGo

     Linux发行版:CentOS.Ubuntu.RedHat.Android.Tizen.MeeGo作者:阳光岛主 原文在这儿 Linux,最早由Linus Benedict Torvalds在199 ...

随机推荐

  1. Windows桌面自动化测试工具:WinAppDriver

    大家好,今天给大家介绍一款Windows桌面自动化测试工具:WinAppDriver. 1.介绍 WinAppDriver是一个开源的自动化测试工具,用于测试Windows应用程序.它是一个Windo ...

  2. LeetCode DP篇-求子序列问题(1143、300、53、72)

    1143. 最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度. 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情 ...

  3. Spire.Cloud 在线协同编辑Word文档

    协同编辑,即项目管理者在用户管理系统下,允许多人(用户)同时编辑同一Word/Excel/PPT 文档.Spire.Cloud支持的协同编辑模式包含两种: 1. 快速模式:其他编辑者可以及时看到对文档 ...

  4. 干货分享丨玩转物联网IoTDA服务系列六-恒温空调

    摘要:本文主要讲述空调接入到物联网平台后,通过恒温空调控制系统,不论空调是否开机,都可以调整空调默认温度,待空调上电开机后,自动按默认温度调节. 场景简介 通过恒温控制系统,不论空调是否开机,都可以调 ...

  5. 【一行代码秒上云】Serverless六步构建全栈网站

    摘要:Serverless怎么玩?听一千道一万不如亲手来实践,跟着我们以华为云Serverless实践FunctionGraph来免费体验一下六步构建全栈网站吧 前言: Serverless怎么玩?听 ...

  6. 想会用synchronized锁,先掌握底层核心原理

    摘要:synchronized锁修饰方法和代码块时底层实现上是一样的,但是在修饰方法时,不需要JVM编译出的字节码完成加锁操作,而synchronized在修饰代码块时,是通过编译出来的字节码生成的m ...

  7. 玩转LiteOS组件:Openexif

    摘要:OpenExif是用于访问Exif格式的JPEG图像文件的面向对象的库. 本文分享自华为云社区<LiteOS组件尝鲜-玩转Openexif>,作者: W922 . 基本信息 Exif ...

  8. 讲透学烂二叉树(五):分支平衡—AVL树与红黑树伸展树自平衡

    简叙二叉树 二叉树的最大优点的就是查找效率高,在二叉排序树中查找一个结点的平均时间复杂度是O(log₂N): 在<讲透学烂二叉树(二):树与二叉/搜索/平衡等树的概念与特征>提到 二叉排序 ...

  9. 机器人多目标包围问题(MECA)新算法:基于关系图深度强化学习

    摘要:中科院自动化所蒲志强教授团队,提出一种基于关系图的深度强化学习方法,应用于多目标避碰包围问题(MECA),使用NOKOV度量动作捕捉系统获取多机器人位置信息,验证了方法的有效性和适应性.研究成果 ...

  10. SQL Server 时间算差值/常用函数

    项目中需要计算使用年限,按月份算.刚开始踩了坑,不足1年应该按1年算.记录下~ 和当前时间比较,用DATEDIFF函数DateDiff(month,比较的时间,getdate())先算出月份,再除以1 ...