在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工具进行磁盘读写性能测试相关推荐

  1. 使用dd工具对磁盘RAID5和10进行I/O性能测试

    很多情况下大家在对于理论深信不疑,理论是有前提条件的,不是所有的情况下都是正确的.恰逢公司有服务器,故进行了磁盘性能测试,当然测试的结果也只是顺序I/O性能测试(dd机制决定的). 前提条件:(DEL ...

  2. 使用iozone进行磁盘读写性能测试

    对于很多GIS工程师,经常需要对系统的磁盘性能进行测试,为了排查问题或者帮助用户进行系统设计. IOZone这个磁盘性能测试工具就是一个很方便的辅助工具. 下面就以个测试共享目录的读写性能为例,说明其 ...

  3. 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 ...

  4. 嵌入式Linux磁盘(硬盘、SD卡)读写性能测试

    背景 在Windows下有一些磁盘基准测试工具,用于测试硬盘/SD卡的读写速度,如ATTO Disk Benchmark(注:单词「benchmark」就是基准检查的意思). 上一篇文章「市面常见存储 ...

  5. Paragon2022Tuxera 两款NTFS磁盘读写工具区别

    Tuxera NTFS for Mac是苹果上专门的NTFS磁盘读写工具,帮助Mac用户解决苹果操作系统读写U盘.硬盘等NTFS格式分区的磁盘的困难. 一.简介 ​Tuxera NTFS for Ma ...

  6. Paragon NTFS15.5.102最新版本磁盘读写工具

    Paragon NTFS是ntfs磁盘读写工具,帮助用户在MAC电脑上读写NTFS格式的磁盘,需要解决MAC无法读写磁盘.NTFS文件系统是Windows NT系列开始启用的文件系统格式,也是目前主流 ...

  7. Omi NTFS磁盘专家 for Mac - Mac磁盘读写工具

    Omi NTFS 磁盘专家是一款适用于 Mac 的免费 Windows NTFS 磁盘读写工具.简单方便的在 macOS 上挂载/卸载 NTFS 磁盘.支持在 Mac 上读写 Windows NTFS ...

  8. Omi NTFS磁盘专家 Mac,一款国产免费NTFS 磁盘读写工具

    Omi NTFS 磁盘专家是一款适用于 Mac 的 Windows NTFS 磁盘读写工具.简单方便的在 macOS 上挂载/卸载 NTFS 磁盘.支持在 Mac 上读写 Windows NTFS 磁 ...

  9. Tuxera NTFS for Mac2023苹果外置磁盘读写驱动工具

    在使用mac过程中,当连接到ntfs格式磁盘时,仅有只读权限,并不能写入数据,此时需要我们在mac中安装磁盘读写工具.想要在mac正常读写ntfs格式磁盘,我们需要安装磁盘读写工具. Tuxera N ...

  10. directoryinfo 读取 映射磁盘_LoaRunner性能测试系统学习教程:磁盘监控(5)

    上期我们讲到LoaRunner性能测试内存监控,这期我们讲LoaRunner性能测试磁盘监控. 磁盘监控 在介绍磁盘监控前,先介绍固定磁盘存储管理的性能,固定磁盘存储器的结构层次如图所示. 每个单独的 ...

最新文章

  1. PHP的Reflection反射机制
  2. 模型剪枝(Pruning)
  3. IDEA 调试Spring-boot 应用
  4. 人人可以理解的区块链100问
  5. L2-006. 树的遍历(不建树)
  6. MySql基础教程(三)——查询训练
  7. 视觉SLAM常用的数据集集合【3】
  8. R语言:多因素Cox回归森林图 (基于forestplot包) 森林图 cox可视化
  9. c++实现解释器模式完整源代码
  10. MSF Exploit入侵电脑实践(Win7/Win10皆可)
  11. 1.42 财务测量指标——静态评价法(投资回报率+投资回收期)
  12. Android获取WIFI 的ssid 方法适配Android9.0
  13. 元宇宙「虚拟世界」,构建身临其境的社交世界
  14. eclipse问题(!MESSAGE Unhandled event loop exception !STACK 0 java.lang.NullPointerException at org.e)
  15. element-plus icon图标的正确使用姿势
  16. ddb文件怎么打开?PROTEL 99se软件pcb设计下载安装使用教程(5)
  17. 机器学习(十五)SVD(特征值分解和奇异值分解的区别)
  18. 软件工程期末复习笔记(文末有PDF版本)
  19. vba移动文件_VBA学习笔记8:工作表操作
  20. 南加州大学林禹臣:教机器学习常识,是种什么体验?

热门文章

  1. Uva 816 Abbott's Revenge 紫书165页例题
  2. oppo的手机上如何找回原来的小米的云便签
  3. IDC将中国城市分成六级:每一级具体的城市是那几个市,谢谢回复
  4. 台式计算机装机软件选择,装机软件哪个好?小编教你最好的装机软件推荐
  5. SECS/GEM 基本概念介绍
  6. linux centos 架构,CentOS Linux 7.5 (build 1804) 现可用于IBM POWER9体系架构
  7. 微信收款播报器提示服务器断开,微信收款语音提醒开启后收不到语音提醒怎么办? 专家详解...
  8. Qt阅读器-ofd格式
  9. leaflet地图原理_leaflet在线地图简介
  10. pytest_03_pycharm运行pytest (转:上海悠悠)