一  fio介绍
linux下的一种常用的磁盘测试工具,支持裸盘和文件形式进行测试
 
二  硬盘测试常用名词
延迟:io的发起到返回写入成功的时间成为延迟,fio中延迟分为lat,slat,clat。
slat:提交延迟,表示硬盘将io提交到kernel需要的时间
clat:完成延迟,表示从kernel到io完成需要的时间。
lat:自slat开始至clat结束经历的时间。
吞吐:带宽的上限
带宽:单位时间内从一端到另一端的数据量,成为带宽。
 
 
三  常见参数
direct=1     //不使用文件系统缓存
iodepth      //io深度,线程向ssd发送多少个io请求,iodepth与接口有关,与介质无关,一般sata < 32; sas < 128; nvme <4096
rw             //值可以是write,read,randread,randwrite,randrw,当设置为rw时需指定rwmixread
ioengine   //写入引擎,linux通常使用libaio
bs            //最小写入块
numjobs   //开启多个线程同时写入
runtime     //限制任务运行的时间,若测试任务先于改时间结束,且未指定tmie_based ,则任务会直接退出
tmie_based //和runtime连用,若runtime未用完,会一直跑下去
loops           //循环,通常不和runtime连用
ramp_time        //在执行测试前忽略的时间
ioscheduler   //io调度算法
iodepth_batch     //默认是iodepth的值
iodepth_batch_complete        //io请求过来后,能retrieve获得的最多请求数;
ipdepth_low         //io请求达到这个水平线后,开始尝试去补充和获取请求,默认是iodepth的值;
max_latency      //最大延迟,当延迟超过该值,fio会自动退出
latency_target=int             //目标延迟,最大可接受的延迟,单位微秒
latency_window=int          //延迟窗口,工作在不同队列深度下测试性能的窗口,单位微妙
latency_percentile=float   //延迟时间百分比,默认为100.0,意味着所有IO延迟必须等于或低于目标设置的值。
 
 四   常用参数理解
 4.1   iodepth
iodepth即队列深度,机械硬盘不支持异步写入,该值对机械硬盘无意义。固态硬盘是支持异步处理的,同时可以处理多个io请求,iodepth可以控制io队列的深度,增大该值可以提高读写性能,但随着iodepth的增大,延迟同样也会增大。
4.2   延迟
固态硬盘产品手册能达到的最大读写和iops是理想单盘情况下能达到的最大值,但是实际生产使用中,因为raid,阵列卡缓存,写入延迟的影响,通常使用过程中的写入性能是低于产品手册的,我们可以通过fio设置latency_target,latency_window,latency_percentile等值,在实际的应用场景下模拟生产业务要求进行写入测试
 
五   fio测试结果分析
usec/msec      //时间单位,微秒,毫秒
stdev              //标准差
clat percentiles  //写入延迟分布情况
ctx       //进程上下文切换次数
majf/minf            //主要和次要页面错误数量
submits/complete             //代表同一时间段内fio发送上去和已完成的io数量,此处小于4(可能是1)可能和收割参数有关
issued                //发送的io总量
aggrb                        //group总带宽
minb                //最小平均带宽.
mint                   //group中线程的最短运行时间.
ios                    //所有group总共执行的IO数.
merge                    //总共发生的IO合并数.
in_queue            //花费在队列上的总共时间.
util                     //磁盘利用率
 
 
六  测试示列
 
fio -filename=/dev/sdb -direct=1 -iodepth=128 -thread -rw=randwrite -ioengine=libaio -bs=4k -size=100G -numjobs=8 -runtime=6m -ramp_time=60 -group_reporting -name=mytest -iodepth_batch_complete=16 
 
fio -filename=/data/tempfile.dat -direct=1 -iodepth=128 -thread -rw=randwrite -ioengine=libaio -bs=4k -size=100G -numjobs=8 -runtime=6m -ramp_time=60 -group_reporting -name=mytest -iodepth_batch_complete=16 -latency_target=4000 -latency_window=50000000 -latency_percentile=99           //限定99%的io请求延迟在4毫秒下
 
 
 
 
参考链接
 
 
 
 
 

硬盘测试工具fio用法总结的更多相关文章

  1. Apache自带压力测试工具ab用法简介

    ab命令原理 ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL进行访问.它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx.lighthttp ...

  2. fio 硬盘测试工具

    一.windows环境 1. 安装fio:http://www.bluestop.org/fio/ 可以选择不同版本的安装,安装后在C:\Program Files\fio目录中可以找到fio的执行程 ...

  3. 云硬盘性能测试工具FIO介绍

    一.云硬盘的性能衡量指标 云硬盘的性能指标一般通过以下几个指标进行衡量 IOPS:每秒的读写次数,单位为次(计数).存储设备的底层驱动类型决定了不同的IOPS 总IOPS:每秒执行的I/O操作总次数 ...

  4. 硬盘性能测试工具fio

    如何衡量云硬盘的性能 IOPS:每秒读/写次数,单位为次(计数).存储设备的底层驱动类型决定了不同的 IOPS. 吞吐量:每秒的读写数据量,单位为MB/s. 时延:IO操作的发送时间到接收确认所经过的 ...

  5. 磁盘测试工具FIO工具安装和使用方法

    一.FIO工具安装: 1.查看fio是否安装 [root@localhost /]#rpm –qa|grep fio 2.源码安装(推荐) 官网地址:http://freecode.com/proje ...

  6. IOPS 测试工具 FIO

    FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎. fio-2.8下载: wget http://brick.kernel.dk/snaps/fio-2.8 ...

  7. Linux硬盘性能测试工具 - FIO

    1.安装:方法一:直接用指令yum -y install fio方法二:如果方法一不可行则,在官网http://freshmeat.net/projects/fio/下载fio的安装包.安装方法很简单 ...

  8. monkey测试===Android测试工具Monkey用法简介(转载)

    Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey ...

  9. 磁盘测试工具fio

    https://wiki.mikejung.biz/Benchmarking #blocksize This options determines the block size for the I/O ...

随机推荐

  1. Py编程方法,尾递归优化,map函数,filter函数,reduce函数

    函数式编程 1.面向过程 把大的问题分解成流程,按照流程来编写过程 2.面向函数 面向函数编程=编程语言定义的函数+数学意义上的函数先弄出数学意义上的方程式,再用编程方法编写这个数学方程式注意面向函数 ...

  2. 从JAVA内存到垃圾回收,带你深入理解JVM

    摘要:学过Java的程序员对JVM应该并不陌生,如果你没有听过,没关系今天我带你走进JVM的世界.程序员为什么要学习JVM呢,其实不懂JVM也可以照样写出优质的代码,但是不懂JVM有可能别被面试官虐得 ...

  3. 基于循环队列的BFS的原理及实现

    文章首发于微信公众号:几何思维 1.故事起源 有一只蚂蚁出去寻找食物,无意中进入了一个迷宫.蚂蚁只能向上.下.左.右4个方向走,迷宫中有墙和水的地方都无法通行.这时蚂蚁犯难了,怎样才能找出到食物的最短 ...

  4. 实用 nginx.conf 用法大全

    服务器拒绝非GET方式请求保障安全性,因为 DELETE.POST.PUT 是可以修改数据的. Nginx 解决方案 在 nginx.conf 配置文件的网站配置区域中添加如下代码片段: 非 GET ...

  5. 【Azure Developer】使用Microsoft Graph API创建用户时候遇见“401 : Unauthorized”“403 : Forbidden”

    问题描述 编写Java代码调用Mircrosoft Graph API创建用户时,分别遇见了"401 : Unauthorized"和"403 : Forbidden&q ...

  6. loj黑暗城堡

    黑暗城堡 题目描述 你知道黑暗城堡有\(N\)个房间,M 条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设\(D_i\)为如果所有的通道都被修建,第i号房间与第1号房间 ...

  7. Spring听课笔记(tg)AOP

    好文:https://blog.csdn.net/javazejian/article/details/56267036 通过一个实例来理解 1.  需求:实现算术计算器,可以加减乘除,同时记录日志 ...

  8. Java8种排序算法学习

    冒泡排序 public class test { public static void main(String[] args) { // TODO Auto-generated method stub ...

  9. HBase,以及GeoMesa设计基于HBase的设计分析,从数据模型到典型查询场景,最后进行RowKey设计

    GeoMesa设计基于HBase的设计分析,从数据模型到典型查询场景,最后进行RowKey设计 一.HBase 基本概念 理解KeyValue KeyValue多版本 列定义(1) 列定义(2) Co ...

  10. Hive on MR调优

    当HiveQL跑不出来时,基本上是数据倾斜了,比如出现count(distinct),groupby,join等情况,理解 MR 底层原理,同时结合实际的业务,数据的类型,分布,质量状况等来实际的考虑 ...