一、dd命令的解释

dd命令主要是用来块拷贝一个指定大小的文件,并在拷贝的同时进行指定的转换。

注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2

参数注释:

1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >

2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >

dd用于复制,从if读出,写到of。if=/dev/zero不产生IO,因此可以用来测试纯写速度。同理of=/dev/null不产生IO,可以用来测试纯读速度。bs是每次读或写的大小,即一个块的大小,count是读写块的数量。

3. ibs=bytes:一次读入的bytes个字节,即指定一个块大小为bytes个字节。

obs=bytes:一次写入的bytes个字节,即指定一个块大小为bytes个字节。

bs=bytes:同时设置读入/输出的块大小为bytes个字节。

4. cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。

5. skip=blocks:从输入文件开头跳过blocks个块后再开始复制。

6. seek=blocks:从输出文件开头跳过blocks个块后再开始复制。

注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。

7. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。

8. conv=conversion:用指定的参数转换文件。

fdatasync  完成dd命令前,写文件数据到磁盘

fsync     除文件数据外,同时也写元数据

9. iflag, oflag 的关键symbol:

dsync  用同步I/O操作数据

sync    除文件数据外,同时也写元数据

如果要规避掉文件系统cache,直接读写,不使用buffer cache,需做这样的设置

iflag=direct,nonblock

oflag=direct,nonblock

dd 命令三种经典使用方法:

dd if=/dev/zero of=test bs=64k count=16k  是不准确的,可能有数据存在内核缓存中,没有同步到磁盘上。对于关键数据应该加上fsync标识,防止关键数据丢失;

dd if=/dev/zero of=test bs=64k count=16k conv=fsync 较为稳妥,但是时间用时较长,他在dd结束前会写数据和文件元数据到磁盘;

dd if=/dev/zero of=test bs=64k count=4k oflag=dsync or sync  每写一次就写一次磁盘,在实际操作中,可以听到磁盘响声,用时较长;

二、测试磁盘写吞吐量

使用dd命令对磁盘进行标准写测试。使用一下命令行读取和写入文件,记住添加oflag参数以绕过磁盘页面缓存。

dd if=/dev/zero of=here bs=1G count=1 oflag=direct

记录了1+0 的读入

记录了1+0 的写出

1073741824字节(1.1 GB)已复制,13.6518 秒,78.7 MB/秒

三、结合nc命令测试网络

Server1使用nc监听17480端口的网络I/O请求:

[root@server1 ~]# nc -v -l -n 17480 > /dev/null

Ncat: Version 6.40 ( http://nmap.org/ncat )

Ncat: Listening on :::17480

Ncat: Listening on 0.0.0.0:17480

Ncat: Connection from 192.168.0.97.

Ncat: Connection from 192.168.0.97:39156.

在Server2节点上发起网络I/O请求:

[root@server2 ~]# time dd if=/dev/zero | nc -v -n 192.168.0.99 17480

Ncat: Version 6.40 ( http://nmap.org/ncat )

Ncat: Connected to 192.168.0.99:17480.

^C记录了34434250+0 的读入

记录了34434249+0 的写出

17630335488字节(18 GB)已复制,112.903 秒,156 MB/秒

real 1m52.906s

user 1m23.308s

sys 2m22.487s

总结:

当然,测试磁盘I/O使用fio工具更好,因为fio支持多种ioengine(rdma/libaio/librbd/libhdfs等)和指定多线程/进程并发数等,另外,测试结果显示的性能更全面(磁盘延迟clat/磁盘利用率util等)。参考:linux 磁盘IO测试工具:FIO (简要介绍iostat工具)

内核参数 linux dd,Linux dd 命令详解(测磁盘的吞吐量)相关推荐

  1. Linux系统与网络、磁盘参数和日志监控等命令详解二

    创作人QQ:851301776,邮箱:lfr890207@163.com, 欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点! 个人座右铭: 1.没有横空出世,只要厚积一定发. ...

  2. LINUX经常使用的命令详解

    LINUX经常使用的命令详解 源地址:http://blog.itpub.net/29065182/viewspace-1189162/ 1.man 对你熟悉或不熟悉的命令提供帮助解释  eg:man ...

  3. linux ps(process status) 命令详解

    linux ps(process status) 命令详解 功能说明:报告程序状况. 语 法:ps [-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C <指令名称> ...

  4. Linux操作系统上lsof命令详解

    Linux操作系统上lsof命令详解 2011-10-08 18:31:31 http://xjsunjie.blog.51cto.com/999372/682865 标签:Linux lsof命令 ...

  5. avast! for linux/unix servers,最常见的Linux/Unix监控工具vmstat命令详解

    最常见的Linux/Unix监控工具vmstat命令详解 vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率.内存使用.虚拟内存交换 ...

  6. Ubuntu (Linux) 系统 find 命令详解

    Ubuntu (Linux) 系统 find 命令详解 在Ubuntu (Linux)系统的终端上,虽然没有像 windows 上那样简介易用的图形界面 搜索工具,但只要你使用足够熟练, 有一个强大命 ...

  7. linux三剑客之awk命令详解

    linux三剑客之awk命令详解 awk 是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件.数据排序.计算以及生成报表等等.awk工具主要用于格式化输出,可以用类似于处理表格的方式处理文 ...

  8. linux之去重uniq命令详解

    linux之去重uniq命令详解 uniq是对文本文件进行行去去重的工具. 以行为单位,进行行与行之间的字符串比较并进行去重 只能对有序的文本行进行有效去重,所以常与sort命令结合使用 参数 解释 ...

  9. linux slocate(secure locate) 命令详解

    linux slocate(secure locate) 命令详解 功能说明:查找文件或目录. 语 法:slocate [-u][--help][--version][-d <目录>][查 ...

  10. Linux上的free命令详解

    Linux上的free命令详解 转自: http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html 解释一下Linux上f ...

最新文章

  1. golang flag简单用法
  2. mybatis java传参_[Java教程]Mybatis批量和传参
  3. Redis之跳跃表(面试重点容易考)
  4. centos7离线安装mysql_Red Hat6.4离线安装mysql安装手册
  5. 百胜软件牵手晨光文具打造电商信息化平台
  6. 贾跃亭的乐视股票要被拍卖了,每股2.51元起拍
  7. 操作系统时间片轮换_操作系统   时间片轮转法
  8. 无法访问机械硬盘提示执行页内操作时的错误的文件恢复办法
  9. qt界面布局之使窗口显示出现在正中间位置
  10. 如何让Mac在 Finder 顶部显示完整的文件路径
  11. cardBattle游戏启动场景设计
  12. 初学C语言2--C语言项目的基本框架
  13. 70个小游戏平台HTML源码
  14. hightopo|海上作业平台的三维可视化场景
  15. 前端-js网页特效(三)动画效果及原理
  16. Oracle 11gR2 RAC 修改监听端口号
  17. android 实现男女按钮选择
  18. 蓝桥杯day7——DFSBFS
  19. 原文 葛底斯堡宣言_如何有感情地背下葛底斯堡演说的全文?
  20. 当@PathVariable遇上了.

热门文章

  1. python中关于字典的基础运用
  2. Shell脚本学习-阶段十六-备份和恢复系统权限
  3. 阿里星专访丨星罡:因为期待,你需要更出色!
  4. java 同步 set_Java Collections synchronizedSet()用法及代码示例
  5. 【转】虚拟机下安装小红帽Linux9.0图解
  6. Intel XDK问题
  7. [转载]依赖注入那些事
  8. Latent Semantic Analysis (LSA) Tutorial第一部分(转载)
  9. android判断是否被点击方法,android 中有没有判断imageview是否以被单击的函数方法?...
  10. vue常用的按键修饰符