如何使用dd工具进行磁盘读写性能测试
在linux系统中,,经常需要对部署主机进行一下磁盘的读写性能测试,这里介绍一个非常简单的测试工具——dd命令.
通常我们会以读写一个较大的文件来测试,比如1G或更大的文件。
dd语法
dd bs=<字节数>conv=<关键字>ibs=<字节数>obs=<字节数>seek=<区块数>--help
参数:
if=file:输入文件名,缺省为标准输入of=file:输出文件名,缺省为标准输出bs=bytes:同时设置读写块的大小为 bytes ,可代替 ibs 和 obsibs=bytes:一次读入 bytes 个字节(即一个块大小为 bytes 个字节)obs=bytes:一次写 bytes 个字节(即一个块大小为 bytes 个字节)
count=blocks:仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数
cbs=bytes:一次转换 bytes 个字节,即转换缓冲区大小skip=blocks:从输入文件开头跳过 blocks 个块后再开始复制seek=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填充)。
使用fdatasync/fsync,每次写一个bs大小数据到磁盘缓存,dd命令结束前一次性将数据刷入磁盘中
conv=fsync //physically write output file data before finishing
conv=fdatasync //likewise, but also write metadata
iflag=FLAGS:指定读的方式FLAGS,参见“FLAGS参数说明”oflag=FLAGS:指定写的方式FLAGS,参见“FLAGS参数说明”
使用dsync/sync,dd一次写一个bs大小的数据,同步写到磁盘后再继续写下一个IO
FLAGS参数说明:
direct:读写数据采用直接IO方式;
directory:读写失败除非是directory;
dsync:读写数据采用同步IO;
sync:同上,但是同时针对元数据
fullblock:堆积满block(accumulate full blocks of input )(iflag only);
nonblock:读写数据采用非阻塞IO方式
noatime:读写数据不更新访问时间
dd常用参数详解
if=xxx 从xxx读取,如if=/dev/zero,该设备无穷尽地提供0,(不产生读磁盘IO)of=xxx 向xxx写出,可以写文件,可以写裸设备。如of=/dev/null,"黑洞",它等价于一个只写文件. 所有写入它的内容都会永远丢失. (不产生写磁盘IO)bs=8k 每次读或写的大小,即一个块的大小。count=xxx 读写块的总数量。
常用使用实例
1) 测试纯写入性能——相当于不写缓存,直接写裸磁盘(写1G文件),每个块8k,总共写128000个块
time dd if=/dev/zero of=output.file bs=8k count=128000 oflag=direct,nonblock
2)测试纯读取性能——相当于不读缓存,直接读裸磁盘
dd if=output.file of=/dev/null bs=8k count=128000 iflag=direct,nonblock
3)测试同步写入的性能——一次写一个bs大小的数据,同步写到磁盘后再继续写下一个IO,这里每次也是写了缓存,但要等缓存同步到磁盘后才能继续下一个IO
dd if=/dev/zero of=/tmp/1G.file bs=4k count=256000 oflag=dsyncdd if=/dev/zero of=/tmp/1G.file bs=4k count=256000 oflag=sync
4) 测试同步读取的性能
dd if=/tmp/1G.file of=/dev/null bs=4k count=256000 iflag=dsyncdd if=/tmp/1G.file of=/dev/null bs=4k count=256000 iflag=sync
5)测试先写缓存,但最后一次刷新到磁盘中
dd if=/dev/zero of=/tmp/1G.file bs=4k count=256000 conv=fsync
dd if=/dev/zero of=/tmp/1G .file bs=4k count=256000 conv=fdatasync
6)测试磁盘写能力——默认文件系统 会写缓存,同文件系统决定何时同步至磁盘,写速度一般较快
time dd if=/dev/zero of=output.file bs=8k count=128000
7) 测试磁盘读能力——默认文件系统 会读缓存,读速度一般较快,如果缓存里没有,则也是直接读磁盘,但第2次之前就比较快
time dd if=output.file of=/dev/null bs=8k count=128000
如何使用dd工具进行磁盘读写性能测试相关推荐
- 使用dd工具对磁盘RAID5和10进行I/O性能测试
很多情况下大家在对于理论深信不疑,理论是有前提条件的,不是所有的情况下都是正确的.恰逢公司有服务器,故进行了磁盘性能测试,当然测试的结果也只是顺序I/O性能测试(dd机制决定的). 前提条件:(DEL ...
- 使用iozone进行磁盘读写性能测试
对于很多GIS工程师,经常需要对系统的磁盘性能进行测试,为了排查问题或者帮助用户进行系统设计. IOZone这个磁盘性能测试工具就是一个很方便的辅助工具. 下面就以个测试共享目录的读写性能为例,说明其 ...
- linux raid1读取速度,RAID1,RAID5,SSD读写性能测试结果1(实测)
1.测试对象 1. 美光5100ECO 2.5 SSD 1920GB SATA 6Gb/s 2. Intel SSD DC S3520 800G 6Gb/s SATA # isdct show -in ...
- 嵌入式Linux磁盘(硬盘、SD卡)读写性能测试
背景 在Windows下有一些磁盘基准测试工具,用于测试硬盘/SD卡的读写速度,如ATTO Disk Benchmark(注:单词「benchmark」就是基准检查的意思). 上一篇文章「市面常见存储 ...
- Paragon2022Tuxera 两款NTFS磁盘读写工具区别
Tuxera NTFS for Mac是苹果上专门的NTFS磁盘读写工具,帮助Mac用户解决苹果操作系统读写U盘.硬盘等NTFS格式分区的磁盘的困难. 一.简介 Tuxera NTFS for Ma ...
- Paragon NTFS15.5.102最新版本磁盘读写工具
Paragon NTFS是ntfs磁盘读写工具,帮助用户在MAC电脑上读写NTFS格式的磁盘,需要解决MAC无法读写磁盘.NTFS文件系统是Windows NT系列开始启用的文件系统格式,也是目前主流 ...
- Omi NTFS磁盘专家 for Mac - Mac磁盘读写工具
Omi NTFS 磁盘专家是一款适用于 Mac 的免费 Windows NTFS 磁盘读写工具.简单方便的在 macOS 上挂载/卸载 NTFS 磁盘.支持在 Mac 上读写 Windows NTFS ...
- Omi NTFS磁盘专家 Mac,一款国产免费NTFS 磁盘读写工具
Omi NTFS 磁盘专家是一款适用于 Mac 的 Windows NTFS 磁盘读写工具.简单方便的在 macOS 上挂载/卸载 NTFS 磁盘.支持在 Mac 上读写 Windows NTFS 磁 ...
- Tuxera NTFS for Mac2023苹果外置磁盘读写驱动工具
在使用mac过程中,当连接到ntfs格式磁盘时,仅有只读权限,并不能写入数据,此时需要我们在mac中安装磁盘读写工具.想要在mac正常读写ntfs格式磁盘,我们需要安装磁盘读写工具. Tuxera N ...
- directoryinfo 读取 映射磁盘_LoaRunner性能测试系统学习教程:磁盘监控(5)
上期我们讲到LoaRunner性能测试内存监控,这期我们讲LoaRunner性能测试磁盘监控. 磁盘监控 在介绍磁盘监控前,先介绍固定磁盘存储管理的性能,固定磁盘存储器的结构层次如图所示. 每个单独的 ...
最新文章
- PHP的Reflection反射机制
- 模型剪枝(Pruning)
- IDEA 调试Spring-boot 应用
- 人人可以理解的区块链100问
- L2-006. 树的遍历(不建树)
- MySql基础教程(三)——查询训练
- 视觉SLAM常用的数据集集合【3】
- R语言:多因素Cox回归森林图 (基于forestplot包) 森林图 cox可视化
- c++实现解释器模式完整源代码
- MSF Exploit入侵电脑实践(Win7/Win10皆可)
- 1.42 财务测量指标——静态评价法(投资回报率+投资回收期)
- Android获取WIFI 的ssid 方法适配Android9.0
- 元宇宙「虚拟世界」,构建身临其境的社交世界
- eclipse问题(!MESSAGE Unhandled event loop exception !STACK 0 java.lang.NullPointerException 	at org.e)
- element-plus icon图标的正确使用姿势
- ddb文件怎么打开?PROTEL 99se软件pcb设计下载安装使用教程(5)
- 机器学习(十五)SVD(特征值分解和奇异值分解的区别)
- 软件工程期末复习笔记(文末有PDF版本)
- vba移动文件_VBA学习笔记8:工作表操作
- 南加州大学林禹臣:教机器学习常识,是种什么体验?
热门文章
- Uva 816 Abbott's Revenge 紫书165页例题
- oppo的手机上如何找回原来的小米的云便签
- IDC将中国城市分成六级:每一级具体的城市是那几个市,谢谢回复
- 台式计算机装机软件选择,装机软件哪个好?小编教你最好的装机软件推荐
- SECS/GEM 基本概念介绍
- linux centos 架构,CentOS Linux 7.5 (build 1804) 现可用于IBM POWER9体系架构
- 微信收款播报器提示服务器断开,微信收款语音提醒开启后收不到语音提醒怎么办? 专家详解...
- Qt阅读器-ofd格式
- leaflet地图原理_leaflet在线地图简介
- pytest_03_pycharm运行pytest (转:上海悠悠)