Linux硬盘读写性能测试

时间:2023-02-05 18:57:00

使用方式

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

示例

  • 测试硬盘写能力

time dd if=/dev/zero of=/testw.dbf bs=4k count=100000
  • 测试磁盘读能力

time dd if=/dev/sdb of=/dev/null bs=4k
  • 测试同时读写能力

time dd if=/dev/sdb of=/testrw.dbf bs=4k

参数

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)字符补齐