测试指标:

IOPS :每秒读写操作(I/O)的次数
Throughput:带宽,一般用MBPS,每秒传输的MB字节数来衡量
Latency:访问延时,完成一次i/o请求所需时间

Fio工具使用

参数 说明

filename=/dev/sda  磁盘路径,不能为文件夹路径

direct direct=1 表示测试的 IO 用直接 IO,即跳过文件系统高速缓存, 使测试结果更接近磁盘性能

iodepth IO 队列长度,典型值: 64 或 128, 值越大磁盘的 IO 负载越高,同时 IO 延迟也会增大,iodepth=1 用来测 IO 延迟

ioengine 设置 IO 引擎, 决定 fio 调用哪种 IO 库,通常用 libaio

rw IO 类型:read = 顺序读,write = 顺序写,randread = 随机读,randwrite = 随机写…

bs IO 块大小,即每个 IO 读写的数据量,通常 bs=1M 用于测试顺序读写带宽,bs=4K 用于测试随机读写的 IOPS

size IO 读写数据总量,如果 runtime 参数设置的时间到,则会停止

numjobs 同时读写的子进程数

runtime 读写时长,如果读写完 size 参数设置的数据量后还未到读写时长且没有设置 time_based 选项,则停止

name 本次测试任务的名字

Fio参数解释:

随机读:
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest顺序写:
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest随机写:
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest混合随机读写:
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop测试混合随机读写:
[root@Dell]# fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest1

注意事项:

1.写操作时不要对有数据的盘进行测试会破坏数据

2.写操作时size值不要超过磁盘最大容量,会导致机器挂掉

3.命令参数之间要用空格分隔,有时网络复制命令可能会出错,较难发现异常

实例:

fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=10G -numjobs=5 -runtime=200 -group_reporting -name=mytest -ioscheduler=noop

混合读写输出:

Starting 5 threadsJobs: 5 (f=5): [m(5)][100.0%][r=1666KiB/s,w=698KiB/s][r=104,w=43 IOPS][eta 00m:00s] mytest: (groupid=0, jobs=5): err= 0: pid=18019: Thu Jan 24 21:49:27 2019read: IOPS=215, BW=3448KiB/s (3531kB/s)(674MiB/200136msec)clat (usec): min=53, max=1542.9k, avg=19892.64, stdev=50617.29lat (usec): min=53, max=1542.9k, avg=19893.33, stdev=50617.28clat percentiles (usec):|  1.00th=[    57],  5.00th=[    71], 10.00th=[   101], 20.00th=[   119],| 30.00th=[   135], 40.00th=[   147], 50.00th=[   172], 60.00th=[  3556],| 70.00th=[ 15926], 80.00th=[ 30016], 90.00th=[ 58459], 95.00th=[ 89654],| 99.00th=[206570], 99.50th=[295699], 99.90th=[666895], 99.95th=[817890],| 99.99th=[977273]bw (  KiB/s): min=    5, max= 2139, per=19.24%, avg=663.32, stdev=428.31, samples=1926iops        : min=    0, max=  133, avg=41.01, stdev=26.77, samples=1926write: IOPS=93, BW=1496KiB/s (1532kB/s)(292MiB/200136msec)clat (usec): min=456, max=1050.0k, avg=7571.94, stdev=33210.46lat (usec): min=457, max=1050.0k, avg=7573.59, stdev=33210.50clat percentiles (usec):|  1.00th=[   570],  5.00th=[   627], 10.00th=[   685], 20.00th=[  1057],| 30.00th=[  1516], 40.00th=[  1680], 50.00th=[  1958], 60.00th=[  2376],| 70.00th=[  2835], 80.00th=[  3916], 90.00th=[  9241], 95.00th=[ 28181],| 99.00th=[127402], 99.50th=[219153], 99.90th=[446694], 99.95th=[666895],| 99.99th=[926942]bw (  KiB/s): min=    5, max= 1080, per=20.00%, avg=299.20, stdev=206.41, samples=1854iops        : min=    0, max=   67, avg=18.26, stdev=12.91, samples=1854lat (usec)   : 100=6.87%, 250=32.98%, 500=1.42%, 750=4.39%, 1000=1.69%lat (msec)   : 2=9.85%, 4=9.12%, 10=5.90%, 20=7.47%, 50=11.06%lat (msec)   : 100=6.04%, 250=2.63%, 500=0.44%, 750=0.07%, 1000=0.06%lat (msec)   : 2000=0.01%cpu          : usr=0.05%, sys=7.02%, ctx=32168, majf=0, minf=4IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%issued rwt: total=43133,18713,0, short=0,0,0, dropped=0,0,0latency   : target=0, window=0, percentile=100.00%, depth=1Run status group 0 (all jobs):READ: bw=3448KiB/s (3531kB/s), 3448KiB/s-3448KiB/s (3531kB/s-3531kB/s), io=674MiB (707MB), run=200136-200136msecWRITE: bw=1496KiB/s (1532kB/s), 1496KiB/s-1496KiB/s (1532kB/s-1532kB/s), io=292MiB (307MB), run=200136-200136msecDisk stats (read/write):sda: ios=43596/18740, merge=537/5, ticks=915366/105750, in_queue=1021774, util=99.95%

部分输入参数对iops影响:

  1. iodepth:队列深度,加大队列深度表示让硬盘不断工作,减少硬盘空闲时间;

加大队列深度-》提高利用率-》获得ipos和mbps峰值-》响应时间增加

2.size:寻址空间,寻址空间较小时iops会显著提高,因为寻址空间小时磁头需要移动的距离变小,每次io请求服务时间降低。要测试整盘性能所以寻址空间设置过小意义不大

Fio输出字段说明

## Jobs: 1表示运行的IO线程数; [w(1)]表示使用模式, w为随机写; [100.0% done]表示当前进程执行的进度; [0KB/2092KB/0KB /s]表示吞吐率瞬时值; [0/523/0 iops]表示IOPS瞬时值; [eta 00m:00s]表示持续时间;命令执行期间,可看到值在实时变化 
Jobs: 1 (f=1): [w(1)] [100.0% done] [0KB/47784KB/0KB /s] [0/11.1K/0 iops] [eta 00m:00s]

## 分别表示任务名称: (当前的GID, job个数): 错误个数; job对应的PID, 任务结束时间 
KingStack EBS 4K randwrite test: (groupid=0, jobs=1): err= 0: pid=5424: Wed Jul 26 15:21:26 2017

## 输出结果: 模式为write, io大小为2794.3MB, 吞吐率为 47687KB/s, IOPS为11921, 执行时间为60s 
write: io=2794.3MB, bw=47687KB/s, iops=11921, runt= 60003msec

## 提交响应时间 
slat (usec): min=1, max=1550, avg= 4.95, stdev= 8.24

## 完成响应时间=提交时间+完成时间(avg较为重要) 
clat (usec): min=27, max=25162, avg=1335.00, stdev=1015.81

## 响应时间 
lat (usec): min=137, max=25166, avg=1340.28, stdev=1015.86

## 95.00th=[ 3440]: 表示95%的IO请求的响应时间小于等于3.44s clat percentiles (usec): | 1.00th=[ 247], 5.00th=[ 306], 10.00th=[ 354], 20.00th=[ 442], | 30.00th=[ 524], 40.00th=[ 660], 50.00th=[ 964], 60.00th=[ 1464], | 70.00th=[ 1704], 80.00th=[ 2192], 90.00th=[ 2928], 95.00th=[ 3440], | 99.00th=[ 3696], 99.50th=[ 3760], 99.90th=[ 4080], 99.95th=[ 4384], | 99.99th=[ 9536]

## 带宽情况 
bw (KB /s): min=45333, max=55131, per=100.00%, avg=47722.74, stdev=1267.38

## Request延迟情况 
lat (usec) : 50=0.01%, 100=0.01%, 250=1.12%, 500=25.93%, 750=16.29% lat (usec) : 1000=7.43% lat (msec) : 2=24.02%, 4=25.09%, 10=0.12%, 20=0.01%, 50=0.01%

## cpu使用率 
cpu : usr=3.13%, sys=8.57%, ctx=86552, majf=0, minf=6

## IO队列深度分布 
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=100.0%, 32=0.0%, >=64=0.0%

## 每次IO需要提交的IO个数 
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%

## 每次IO完成的IO个数 
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.1%, 32=0.0%, 64=0.0%, >=64=0.0%

## 执行的读写IO操作的情况 
issued : total=r=0/w=715339/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0

## IO完成延迟的分布情况 
latency : target=0, window=0, percentile=100.00%, depth=16

## IO操作情况汇总: 全部IO大小, group总带宽, 最小平均带宽, 最大平均带宽, group中的最短线程运行时间, group中的最长线程运行时间 
Run status group 0 (all jobs): 
WRITE: io=2794.3MB, aggrb=47686KB/s, minb=47686KB/s, maxb=47686KB/s, mint=60003msec, maxt=60003msec

## 所有group总共执行的IO情况: IO数量, IO合并情况, 表示磁盘繁忙的tick数量, 队列消耗时间, 磁盘使用率 
Disk stats (read/write): 
vdb: ios=59/714790, merge=0/0, ticks=28/915069, in_queue=914950, util=99.52%

IO性能测试工具使用相关推荐

  1. IOmeter磁盘IO性能测试工具

    Linux下IOmeter的使用 ------------------------------------- IOmeter是intel开发的一款免费软件,主要用于Windows和Linux平台下对磁 ...

  2. linux性能测试cpu内存io,Linux下磁盘IO性能测试工具介绍

    近来想了解一下开发环境的IO性能,分别用dd/orion/iozone/bonnie++四种工具测试了一下 开发环境系统配置如下: Intel SR1625 server, 2 CPU, 32GB内存 ...

  3. 几种硬盘IO性能测试工具

    [dd工具] 操作系统: ubuntu 12.04  测试工具: dd  版本:8.21 执行dd --version来查看 工具说明: dd命令能粗略测试硬盘IO性能 不足:执行dd命令测试硬盘IO ...

  4. ubuntu磁盘io性能测试工具hdparm

    安装 apt install hdparm -y 测试/dev/sda的磁盘性能 hdparm -t --direct /dev/sda 测试/dev/vda的磁盘性能 hdparm -t --dir ...

  5. 【测试】 FIO:ceph/磁盘IO测试工具 fio(iodepth深度)

    目录 随看随用 NAS文件系统测试 块系统测试 FIO用法 FIO介绍 FIO 工具常用参数: FIO结果说明 I/O 的重放('录'下实际工况的IO,用fio'重放') fio工作参数可以写入配置文 ...

  6. 深入浅出开源性能测试工具 Locust (使用篇 1)

    在<[LocustPlus序]漫谈服务端性能测试>中,我对服务端性能测试的基础概念和性能测试工具的基本原理进行了介绍,并且重点推荐了Locust这一款开源性能测试工具.然而,当前在网络上针 ...

  7. 如何用sysbench做好IO性能测试

    2019独角兽企业重金招聘Python工程师标准>>> sysbench 是一个非常经典的综合性能测试工具,通常都用它来做数据库的性能压测,但也可以用来做CPU,IO的性能测试.而对 ...

  8. MySQL性能测试工具sysbench的安装和使用

    sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQL.Oracle和PostgreSQL.当前 ...

  9. [雪峰磁针石博客]2018最佳12个开源或免费web服务器和客户端性能测试工具

    更多参考 软件测试专家工具包2性能测试 服务器端性能 image.png Locust.io – 了解服务器端性能的好工具. 语言python3.源码 python3+ python2.7+ gith ...

最新文章

  1. linux c 字符串查找函数 strstr strcasestr
  2. 传统网站与营销型网站区别盘比
  3. java web二: xml编程(CRUD)
  4. 前端性能优化之DOM(三)
  5. HTML之Position用法
  6. 按钮点击_如何设置微信小程序按钮点击事件?
  7. CC2530, 各种智能家居通信技术比较
  8. ipynb是什么文件_数据科学家的神器:为什么大家都用Kaggle?
  9. 学java交学费包分配_java 学生缴学费案例:
  10. C语言基础--字符串
  11. 案例详解:Linux文件系统异常导致数据库文件无法访问
  12. 去重 属性_赛尔原创@EMNLP2020|开放域对话系统的属性一致性识别
  13. 大数据之-Hadoop3.x_MapReduce工作流程---大数据之hadoop3.x工作笔记0109
  14. Cocos2d-x 3.0修改Android平台帧率fps - 解决游戏运行手机发热发烫问题
  15. 【吴恩达机器学习】学习笔记——4多元线性回归
  16. su必备插件_21款SU常用插件集合
  17. 气象基础知识matlab,气象类专业Matlab课程教学探索与思考
  18. Work Stealing Pool线程池
  19. 【计算机网络】TCP糊涂窗口综合症
  20. 文件上传解析器MultipartResolver

热门文章

  1. 冬天运动跑步哪款蓝牙耳机好用?佩戴舒舒高续航半入耳式蓝牙耳机推荐
  2. 浏览器无需下载插件 解决网页长截图的小技巧
  3. centos7搭建harbor镜像仓库
  4. C语言学习推荐---小游戏
  5. Office 2013 Word ,Excel或者PPT打开时出现 VBE6EXT.OLB不能被加载,溢出的问题解决
  6. 字幕字体滚动插件——scroxt.js
  7. 民用/家用 固态硬盘选择及购买
  8. 如何完成微信小程序毕业设计的写作流程及答辩过程
  9. 计算机专业迎新标语,2018迎新标语大全 这样的脑洞给跪了
  10. PM都要懂这三种管理方式