正确使用dd进行磁盘读写速度测试

电脑杂谈  发布时间:2020-08-07 14:31:01  来源:网络整理

机械硬盘 4k性能_机械硬盘4k速度_机械硬盘4k写入才1m

测试方法: 使用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 =] [-帮助] [-version]

补充说明: dd可以从标准输入或文件读取数据,按照指定的格式转换数据,然后输出到文件,设备或标准输出.

参数:

机械硬盘4k速度_机械硬盘4k写入才1m_机械硬盘 4k性能

bs =将ibs(输入)和obs(输出)设置为指定的字节数.

cbs =转换时,每次仅转换指定数目的字节.

conv =指定文件转换方法.

count =仅读取指定数量的块.

ibs =每次读取的字节数.

if =从文件读取.

obs =每次输出的字节数.

of =输出到文件.

seek =输出开始时,跳过指定数量的块.

skip =在阅读开始时,跳过指定数量的块.

-帮助帮助.

机械硬盘4k写入才1m_机械硬盘 4k性能_机械硬盘4k速度

-version显示版本信息.

dd常用参数的详细说明

--------------------------------------------------- ----------

如果从xxx读取if = xxx,例如if = / dev / zero,则设备无休止地提供0(不生成读取磁盘IO)

of = xxx写入xxx,可以写入文件,可以写入原始设备. 如of = / dev / null,“黑洞”,它等效于只写文件. 写入其中的所有内容将永远丢失. (不生成写磁盘IO)

bs = 8k每次读取或写入的大小,即块的大小.

count = xxx读写块总数.

避免操作系统的“写缓存”干扰测试结果,请使用sync,fsync,fdatasync

--------------------------------------------------- ----------

有关同步,fsync,fdatasync,请参阅:

dd bs = 8k count = 4k if = / dev / zero of = test.log conv = fsync

机械硬盘4k写入才1m_机械硬盘 4k性能_机械硬盘4k速度

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如果= / dev / zero of = test.log默认启用“写缓存”

dd bs = 8k count = 4k如果= / dev / zero of = test.log conv = sync启用了“写入缓存”

dd bs = 8k count = 4k if = / dev / zero of = test.log;同步“写入缓存”启动功能

dd bs = 8k count = 4k if = / dev / zero of = test.log conv = fsync

添加此参数后,dd命令实际上将在最后执行“同步”操作,以使计算出的时间更符合实际使用结果. conv = fsync意味着将文件的“数据”和“元数据”都写入磁盘(元数据包括大小,访问时间st_atime和st_mtime等),因为文件数据和元数据通常存在于硬盘上的不同位置,因此fsync至少需要两个. 对于每个IO写入操作,fsync和fdatasync差别不大. (重要且最有价值的参考)

dd bs = 8k count = 4k if = / dev / zero of = test.log conv = fdatasync

添加此参数后,dd命令实际上将在最后执行“同步”操作,以使计算出的时间更符合实际使用结果. conv = fdatasync意味着仅将文件的“数据”写入磁盘,并且fsync与fdatasync没有太大区别. (重要且最有价值的参考)

dd bs = 8k count = 4k if = / dev / zero of = test.log oflag = dsync

添加此参数后,每读取8k,必须将8k写入磁盘,然后读取下一个8k,总共重复4K次. 这是最慢的方法.

机械硬盘4k速度_机械硬盘 4k性能_机械硬盘4k写入才1m

dd bs = 8k count = 4k if = / dev / zero of = test

没有关于操作系统“写入缓存”的参数,并且默认的“写入缓存”已启用. dd首先写数据的操作系统“写缓存”完成写操作. 通常被定期称为update的系统守护程序(通常每30秒更新一次)调用sync函数,以将“写入缓存”中的数据刷新到磁盘. 由于“写缓存”有效,因此您将测试超快性能.

例如: 复制163840000字节(164 MB),0.742906秒,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命令准备好实际将数据写入磁盘时,上一个dd命令已经在屏幕上显示了错误的“ write speed”值. 因此您仍然无法获得真正的写入速度.

裸设备测试

----------------------

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

有关原始设备的更多信息,请参阅:


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/dianqi/article-293865-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...