dd命令详解

摘要:
Dd复制if source if=/dev/zero未生成IOof destination of=/dev/null未生成IObs块大小计数读写块数量iflag/olgdd执行读写测试时,添加两个参数iflag=nocache和oflag=direct。如果没有,dd有时会显示从内存传输数据的结果,速度会不准确。示例:ddif=/dev/zerof=testbs=1Mount=0seek=100000oflag=direct Linux服务器安装系统后,它想知道硬盘的读写是否能满足服务的需要。如果它不满足硬盘的IO,则是服务的瓶颈。所以我们需要测试硬盘的读写速度。有很多方法可以测试它。以下是使用Linux附带的dd命令测试硬盘的读写速度。时间具有计时功能。dd用于复制、读取if和写入。

【基本参数详解】

dd

复制

  

if

if=/dev/zero不产生IO

of

目的

of=/dev/null不产生IO

bs

块大小

  

count

读写块的数量

  

iflag/oflag

dd做读写测试时,要加两个参数 iflag=nocache oflag=direct 参数。

没有的话dd有时会显示从内存中传输数据的结果,速度会不准确。

iflag=nocache
oflag=direct

seek

seek的作用是跳过输出文件中指定大小的部分,这就达到了创建大文件,但是并不实际写入的目的。

当然,因为不实际写入硬盘,所以你在容量只有10G的硬盘上创建100G的此类文件都是可以的

  

示例:

dd if=/dev/zero of=test bs=1M count=0 seek=100000 oflag=direct

   

【测试读写速度】

Linux服务器装好系统之后,想要知道硬盘的读写是否能满足服务的需要,如果不满足硬盘的IO就是服务的一个瓶颈。所以我们需要测试硬盘的读写速度,测试的方法很多,下面是使用Linux 自带的dd命令测试硬盘的读写速度。

   

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

   

/data目录所在磁盘的纯写速度

[root@nagios ~]# time dd if=/dev/zero of=/var/test bs=8k count=1000000 oflag=direct

   

/data目录所在磁盘的纯读速度

[root@nagios ~]# time dd if=/var/test of=/dev/null bs=8k count=1000000 iflag=nocache

   

读写速度

[root@nagios ~]# time dd if=/var/test of=/tmp/test bs=8k count=1000000 iflag=nocache

   

备注:理论上测试复制量越大测试结果越准确

   

正常测试的时候可能不止测试一边,可能会需要很多遍求取平均值,这个测试结果在普通的重定向是没有效果的

用下面的方式可以将结果重定向到文件

dd if=/dev/zero of=/var/test bs=8k count=1000000 2>> info

 

免责声明:文章转载自《dd命令详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇解决springboot序列化 json数据到前端中文乱码问题android查缺补漏下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

内存, 硬盘, CPU是拿什么材料制作的? 电子管, 晶体管与计算机硬件的发展史.

0.引子 从<<深入理解计算机系统>>一书上看到: CPU内寄存器读取速度比内存速度快100倍, 硬盘读取时间开销是内存的1000万倍. 从寄存器(也就是L0)->L1高速缓存->L2高速缓存->内存->硬盘->分布式硬盘, 造价逐渐低, 速度逐渐减慢, 容量逐渐增大; 反之则造价逐渐昂贵, 速度逐渐提...

Debian 7 安装 Python3.4

Debian 7 自带的python是2.7.3,要用最新的3.4版本怎么办?我们从官网下载压缩包自己编译。 一、安装编译用的包 1 $ sudo apt-get install build-essential 2 $ sudo apt-get install libncurses5-dev libncursesw5-dev libreadline6-de...

vue前端工程化

今日目标 1.能够了解模块化的相关规范 2.了解webpack3.了解使用Vue单文件组件4.能够搭建Vue脚手架5.掌握Element-UI的使用 1.模块化的分类 A.浏览器端的模块化 1).AMD(Asynchronous Module Definition,异步模块定义)代表产品为:Require.js2).CMD(Common Module D...

字符编码及基本文件操作

字符编码和基本文件操作 字符编码 文字转换成数字就是强制转换 ASCII ASCII:美国信息交换标准码,现今通用的单字节编码系统 计算机最小的表示单位:bit(比特) 计算机最小的存储单位:bytes(字节),8b = 1bytes Unicode:万国语言编码 使用Unicode编码比ASCII编码需要多一倍的存储空间 UTF-8 将Unicode编码...

内存文件映射

一直都对内存映射文件这个概念很模糊,不知道它和虚拟内存有什么区别,而且映射这个词也很让人迷茫,今天终于搞清楚了。。。下面,我先解释一下我对映射这个词的理解,再区分一下几个容易混淆的概念,之后,什么是内存映射就很明朗了。 原理首先,“映射”这个词,就和数学课上说的“一一映射”是一个意思,就是建立一种一一对应关系,在这里主要是只 硬盘上文件 的位置与进程 逻辑...

Linux中部署Maven项目, 自定义setting.xml文件

查看Linux中maven地址 [root@iZbp1cj4z3w66bw25x346qZ Portal]# mvn -v Apache Maven 3.3.1 (cab6659f9874fa96462afef40fcf6bc033d58c1c; 2015-03-14T04:10:27+08:00) Maven home: /usr/local/mave...