Linux基础教程:Lnux测试硬盘读写速度

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

  1.测/目录所在磁盘的纯写速度:

  [root@ /]# time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file

  2.测/目录所在磁盘的纯读速度:

  dd if=/kvm/ftp/other/1Gb.file bs=64k |dd of=/dev/null

  3.测读写速度(这是什么):

  dd if=/vat/test of=/oradata/test1 bs=64k

  理论上复制量越大测试越准确.

dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

dd 命令通用语法格式如下:

dd if=path/to/input_file of=/path/to/output_file bs=block_size count=number_of_blocks

命令简介

主要选项(指定数字的地方若以下列字符结尾乘以相应的数字: b=512, c=1, k=1024, w=2, xm=number m):


if=file                 输入文件名,缺省为标准输入。
of=file                 输出文件名,缺省为标准输出。
ibs=bytes                一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。
obs=bytes                一次写 bytes 个字节(即一个块大小为 bytes 个字节)。
bs=bytes                 同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。
cbs=bytes                一次转换 bytes 个字节,即转换缓冲区大小。
skip=blocks               从输入文件开头跳过 blocks 个块后再开始复制。
seek=blocks                 从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)。
count=blocks              仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。
conv=conversion[,conversion...]    用指定的参数转换文件。
iflag=FLAGS              指定读的方式FLAGS,参见“FLAGS参数说明”
oflag=FLAGS              指定写的方式FLAGS,参见“FLAGS参数说明”


conv 转换参数:

ascii                  转换 EBCDIC 为 ASCII。
ebcdic                   转换 ASCII 为 EBCDIC。
ibm                   转换 ASCII 为 alternate EBCDIC.
block                  把每一行转换为长度为 cbs 的记录,不足部分用空格填充。
unblock                 使每一行的长度都为 cbs ,不足部分用空格填充。
lcase                  把大写字符转换为小写字符。
ucase                  把小写字符转换为大写字符。
swab                   交换输入的每对字节。
noerror                 出错时不停止。
notrunc                 不截短输出文件。
sync                   把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。 

FLAGS 参数说明:

append -append  mode  (makes  sense  only  for output; conv=notrunc sug-gested)

direct                 读写数据采用直接IO方式;
directory              读写失败除非是directory;
dsync                 读写数据采用同步IO;
sync                 同上,但是针对是元数据
fullblock              堆积满block(accumulate full blocks of input )(iflag only);
nonblock               读写数据采用非阻塞IO方式
noatime                读写数据不更新访问时间

time+dd 测磁盘读写速度

1、先熟悉两个特殊的设备及一些相关参数:

1) time有计时作用,dd用于复制,从if读出,写到of;

2) if=/dev/zero(产生字符)不产生IO,因此可以用来测试纯写速度;

3) 同理of=/dev/null(回收站、无底洞)不产生IO,可以用来测试纯读速度;

4) 将/tmp/test拷贝到/var则同时测试了读写速度;

5) bs是每次读或写的大小,即一个块的大小,count是读写块的数量。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/24867.html