加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

详解三种Linux测试磁盘IO机能的要领总结,值得保藏

发布时间:2019-07-27 03:58:42 所属栏目:移动互联 来源:波波说运维
导读:概述 在磁盘测试中我们一样平常最体谅的几个指标别离为:iops(每秒执行的IO次数)、bw(带宽,每秒的吞吐量)、lat(每次IO操纵的耽误)。 当每次IO操纵的block较小时,如512bytes/4k/8k等,测试的首要是iops。 当每次IO操纵的block较大时,如256k/512k/1M等,测试的
副问题[/!--empirenews.page--]

 概述

在磁盘测试中我们一样平常最体谅的几个指标别离为:iops(每秒执行的IO次数)、bw(带宽,每秒的吞吐量)、lat(每次IO操纵的耽误)。

当每次IO操纵的block较小时,如512bytes/4k/8k等,测试的首要是iops。

当每次IO操纵的block较大时,如256k/512k/1M等,测试的首要是bw。

详解三种Linux测试磁盘IO机能的要领总结,值得保藏

一、dd呼吁

dd是linux自带的磁盘读写器材,可用于测试次序读写。

一样平常而言,磁盘读写有两种方法:BufferIO、DirectIO,DirectIO可以更好的相识纯磁盘读写的机能。

1、语法

语法名目

  1. dd [option] 

dd指令选项详解

  1. if=file:输入文件名,缺省为尺度输入 
  2. of=file:输出文件名,缺省为尺度输出 
  3. ibs=bytes:一次读入 bytes 个字节(即一个块巨细为 bytes 个字节) 
  4. obs=bytes:一次写 bytes 个字节(即一个块巨细为 bytes 个字节) 
  5. bs=bytes:同时配置读写块的巨细为 bytes ,可取代 ibs 和 obs 
  6. cbs=bytes:一次转换 bytes 个字节,即转换缓冲区巨细 
  7. skip=blocks:从输入文件开头跳过 blocks 个块后再开始复制 
  8. seek=blocks:从输出文件开头跳过 blocks 个块后再开始复制。(凡是只有当输出文件是磁盘或磁带时才有用) 
  9. count=blocks:仅拷贝 blocks 个块,块巨细便是 ibs 指定的字节数 
  10. conv=ASCII:把EBCDIC码转换为ASCIl码。 
  11. conv=ebcdic:把ASCIl码转换为EBCDIC码。 
  12. conv=ibm:把ASCIl码转换为alternate EBCDIC码。 
  13. conv=block:把变换位转换成牢靠字符。 
  14. conv=ublock:把牢靠位转换成变换位。 
  15. conv=ucase:把字母由小写转换为大写。 
  16. conv=lcase:把字母由大写转换为小写。 
  17. conv=notrunc:不截短输出文件。 
  18. conv=swab:互换每一对输入字节。 
  19. conv=noerror:堕落时不断止处理赏罚。 
  20. conv=sync:把每个输入记录的巨细都调到ibs的巨细(用NUL添补)。 

FLAGS参数声名:

  1. append -append mode (makes sense only for output; conv=notrunc sug-gested) 
  2. direct:读写数据回收直接IO方法; 
  3. directory:读写失败除非是directory; 
  4. dsync:读写数据回收同步IO; 
  5. sync:同上,可是针对是元数据 
  6. fullblock:会萃满block(accumulate full blocks of input )(iflag only); 
  7. nonblock:读写数据回收非阻塞IO方法 
  8. noatime:读写数据不更新会见时刻 

留意:指定命字的处所若以下列字符末了乘以响应的数字:b=512, c=1, k=1024, w=2, xm=number m,kB=1000,K=1024,MB=1000*1000,M=1024*1024,GB=1000*1000*1000,G=1024*1024*1024

2、dd测试DirectIO

  1. iops——写测试 dd if=/dev/zero of=./a.dat bs=8k count=1M oflag=direct 
  2. iops——读测试 dd if=./a.dat of=/dev/null bs=8k count=1M iflag=direct 
  3. bw——写测试 dd if=/dev/zero of=./a.dat bs=1M count=8k oflag=direct 
  4. bw——读测试 dd if=./a.dat of=/dev/null bs=1M count=8k iflag=direct 
详解三种Linux测试磁盘IO机能的要领总结,值得保藏

3、 dd测试BufferIO

BufferIO首要呈此刻一些大文件读写的场景,因为行使内存做Cache以是读写机能上和DirectIO对比,凡是会高许多,尤其是读,以是这个场景下我们仅体谅bw即可。

用dd测试BufferIO的写时,必要增进一个conv=fdatasync,行使该参数,在完成全部读写后会挪用一个sync确保数据所有刷到磁盘上(时代操纵体系也有也许会主动flush),不然就是首要在测内存读写了;

其它尚有一个参数是oflag=dsync,行使该参数也是走的BufferIO,但却是会在每次IO操纵后都执行一个sync。

凡是conv=fdatasync更切合大文件读写的场景,以是这里以其作为参数举办测试。

  1. bw——写测试 dd if=/dev/zero of=./a.dat bs=1M count=8k conv=fdatasync 
  2. bw——读测试 dd if=./a.dat of=/dev/null bs=1M count=8k 
详解三种Linux测试磁盘IO机能的要领总结,值得保藏

二、 fio器材

fio是专门用于测试磁盘IO的器材,与dd对比那是要强盛很是多,它可以用于测试次序读写、随机读写、次序殽杂读写、随机殽杂读写,而且可以调解IO并发量,在测试完成后还会天生一份测试陈诉,相等给力。

1、测试场景:

100%随机,100%读, 4K

  1. fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=1000G -numjobs=50 -runtime=180 -group_reporting -name=rand_100read_4k 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读