dd命令测试linux磁盘io情况,【LINUX】正确的使用dd进行磁盘读写速度测试
测试方式:使用dd指令,对磁盘进行连续写入,不使用内存缓冲区,每次写入8k的数据,总共写入20万次,产生1.6G大小的文件。
测试指令:dd if=/dev/zero of=/data01/test.dbf bs=8k count=200000 conv=fdatasync
----------------------------------------------
正确的使用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
转载自:http://elf8848.iteye.com/blog/2089055
dd命令测试linux磁盘io情况,【LINUX】正确的使用dd进行磁盘读写速度测试相关推荐
- dd命令测试linux磁盘io情况,dd命令:做硬盘IO性能测试
一.dd复制转换 1.dd:convert and copy a file 文件转换和复制,复制操作底层(块) DESCRIPTION:Copy a file, converting and form ...
- linux nmon 进程io,Linux服务器用iotop命令分析服务器磁盘IO情况
Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦. 如果会systemtap, 或者blktrace这些事 ...
- linux查看IO情况
Linux上使用iftop可以查看网络使用情况,使用iotop可以查看磁盘io使用情况 安装 yum install iftop yum install iotop 1. 网络IO 查看网络情况 if ...
- Linux内核IO追踪:用GDB调试,一个磁盘IO的流程是什么样的
Table of Contents 构建内核 产生IO写入的程序 追踪到兔子洞 准备步骤 进入FS层:我正在使用的fs是XFS 潜入块层 进入块驱动程序层:我的块驱动程序是SCSI 回到fs层,研究内 ...
- 在不重启Linux服务器的情况下在线识别新添加的磁盘
前言 在我们使用 Linux系统的过程中,有时会因为初始时磁盘空间的分配不足,使用中途需要将挂载点扩容的情况,这时候就需要我们挂载新的磁盘到服务器上,但是如果我们在 Linux 运行过程中挂载新磁盘 ...
- linux lvm使用情况,Linux LVM系列(一)lvm使用
简介 逻辑卷管理LVM是一个多才多艺的硬盘系统工具.无论在Linux或者其他类似的系统,都是非常的好用.传统分区使用固定大小分区,重新调整大小十分麻烦.但是,LVM可以创建和管理"逻辑&qu ...
- linux buffer io error,Linux Buffer I/O error on device dm-4, logical block,dm-4logical
Linux Buffer I/O error on device dm-4, logical block,dm-4logical Linux服务器日志(Oracle Linux Server rele ...
- linux系统io错误,linux系统IO操作
本文重点说明下面内容: 什么是标准IO,什么是文件IO? 什么是Direct IO? O_SYNC标识有什么意义? 各个层面的缓存如何同步? 还在page cache中的脏页可以读写吗? IO路径上的 ...
- linux命令查看磁盘使用情况,linux查看磁盘使用情况命令
统一磁盘整体情况,包括磁盘大小,已使用,可用 df -hT [[email protected] ~]# df -hT Filesystem Type Size Used Avail Use% Mou ...
最新文章
- Go 学习笔记(33)— Go 自定义类型 type(自定义结构体、结构体初始化、结构体内嵌、自定义接口)
- 自动驾驶L3量产追梦:如何跨过车规级和低成本门槛?
- 【小技巧】notepad++ 输入中文无响应
- VC返回文件所在的路径
- 初识推荐算法---算法背景、算法概念介绍、推荐信息选取、常用推荐算法简介
- Windows 2008 限制IP连接方法
- CCNA交换技术综合实验步骤详解
- 蓝桥杯真题:杨辉三角形
- 射频识别技术漫谈(17)——射频卡中数据的存储形式
- 74cms3.0 SQL注入
- 中国科学院大学计算机复试,被中国科学院北京计算所录取了...(复试经验)
- edm邮件直投_EDM邮件直投专家_EDM邮件直投专家官方版下载 - 邮件处理 - 绿软家园...
- Nacos 配置不生效
- Jmeter 测试12306 获取火车票订单接口
- java必备英语单词
- 【公式编辑测试】解析几何-三角形外心重心垂心内心公式
- 【STM32F429开发板用户手册】第34章 STM32F429的SPI总线应用之驱动DAC8501(双路输出,16bit分辨率,0-5V)
- 全自动加药装置如何选型?
- B端产品设计之原型设计
- 服务器被黑,帮凶竟然是Redis
热门文章
- 新手怎么读懂一个中型的Django项目
- C/C++ unsigned char*类型
- python如何获取鼠标点击图片的像素点坐标
- python numpy np.argsort()(返回将对数组进行排序的索引)(不懂区别?)
- python 相对路径
- xsd java引用_web.xml文件的 xsd引用(或dtd引用)学习
- bitnamigitlab_100%可用不坑爹的BitNami GitLab安装教程
- sybase 事务插入时不可查询_InnoDB事务与锁
- clion 查看内容窗口_CLion精华笔记
- mysql 透明代理_透明代理MySQL_基于zbus的MySQL透明代理(100行)-云栖社区