在磁盘测试中最关心的几个指标分别为:

iops(每秒执行的IO次数)、bw(带宽,每秒的吞吐量)、lat(每次IO操作的延迟)。

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

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

1. FIO 简介

  FIO 是一款 用于对磁盘进行性能测试的工具。可以测试IOPS,吞吐量,IO延迟等主要性能指标。而且支持多种IO引擎。

2. FIO 下载

  下载地址:http://brick.kernel.dk/snaps/

  打开以上网址,选择自己需要的版本并下载。比如:

  

wget http://brick.kernel.dk/snaps/fio-3.5.tar.gz
--2018-03-26 14:19:37-- http://brick.kernel.dk/snaps/fio-3.5.tar.gz
正在解析主机 brick.kernel.dk... 216.160.245.99
正在连接 brick.kernel.dk|216.160.245.99|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:http://113.215.21.45:80/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/brick.kernel.dk/snaps/fio-3.5.tar.gz [跟随至新的 URL]
--2018-03-26 14:19:39-- http://113.215.21.45/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/brick.kernel.dk/snaps/fio-3.5.tar.gz
正在连接 113.215.21.45:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:729544 (712K) [application/x-gzip]
正在保存至: “fio-3.5.tar.gz”
72% [======================================================================> ] 532,565 154K/s eta(英国中部时
83% [=================================================================================> ] 610,757 159K/s eta(英国中部时
84% [=================================================================================> ] 616,549 149K/s eta(英国中部时
96% [=============================================================================================> ] 706,325 162K/s eta(英国中部时
100%[=================================================================================================>] 729,544 164K/s in 4.3s
2018-03-26 14:19:44 (164 KB/s) - 已保存 “fio-3.5.tar.gz” [729544/729544])

  或者下载后再上传至服务器。

 

3. 解压并安装

  

# tar -xzvf ./fio-3.5.tar.gz
.... 省略输出
# cd fio-3.5
# make && make install
.... 省略输出
# which fio
/usr/local/bin/fio

4. 使用说明

  

filename=/dev/sdb1       测试文件名称,通常选择需要测试的盘的data目录。
direct= 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机写和读的I/O
bs=16k 单次io的块文件大小为16k
bsrange=- 同上,提定数据块的大小范围
size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs= 本次的测试线程为30.
runtime= 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
ioengine=psync io引擎使用pync方式
rwmixwrite= 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息
lockmem=1g 只使用1g内存进行测试。
zero_buffers 用0初始化系统buffer。
nrfiles= 每个进程生成文件的数量

5. 测试示例

  混合测试: 

fio -filename=/tmp/test -direct= -iodepth  -thread -rw=randrw -rwmixread= -ioengine=psync -bs=512b -size=200m -numjobs= -runtime= -group_reporting -name=mytest

 

顺序读:
fio -filename=/dev/test -direct= -iodepth -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs= -runtime= -group_reporting -name=mytest 随机写:
fio -filename=/dev/test -direct= -iodepth -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs= -runtime= -group_reporting -name=mytest 顺序写:
fio -filename=/dev/test -direct= -iodepth -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs= -runtime= -group_reporting -name=mytest

    

fio 测试磁盘性能的更多相关文章

  1. vdbench和fio测试磁盘性能的对比总结

    一.安装 1.安装vdbench,首先安装java:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213 ...

  2. [记录]FIO测试磁盘iops性能

    FIO测试磁盘iops性能 1.SATA和SAS盘原生IOPS如下: 2.RAID磁盘阵列对应的写惩罚级别: 3.计算功能性IOPS公式如下: 功能性 IOPS=(((总原生 IOPS×写 %))/( ...

  3. 使用SQLIO测试磁盘性能

    SQLIO 是一个用于测试存储系统能力的命令行工具,用以获取存储系统相关的性能指标,以判断系统的 I/O 处理能力. 在微软的网站可以下载 SQLIO 的安装包,安装后目录中会出现如下文件: EULA ...

  4. linux使用FIO测试磁盘的iops 【转载】

     linux使用FIO测试磁盘的iops 2013-09-23 10:59:21 分类: LINUX FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括 ...

  5. 【转】dd命令详解及利用dd测试磁盘性能

    dd命令详解及利用dd测试磁盘性能   linux下dd命令详解 名称: dd 使用权限: 所有使用者 manpage 定义: convert and copy a file 使用方式: dd [op ...

  6. Linux 中使用 dd 测试磁盘性能

    翻译自 : Linux I/O Performance Tests using dd 基本说明 dd 可以用来做简单的低级别复制文件. 这样做, 一般都是可一直直接访问设备文件. 需要说明的是, 错误 ...

  7. 使用FIO测试磁盘iops

    我们如何衡量一个存储的性能呢?IOPS(Input/Output OperationsPer Second),即每秒进行读写(I/O)操作的次数是国际上通用的存储性能衡量标准,IOPS越高意味着在同一 ...

  8. iozone测试磁盘性能

    什么是iozone? iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能. 可以测试 Read, write, re-read,re-write, read ...

  9. 使用iozone测试磁盘性能

    IOzone是一个文件系统测试基准工具.可以测试不同的操作系统中文件系统的读写性能.可以通过 write, re-write, read, re-read, random read, random w ...

随机推荐

  1. constexpr和常量表达式

    常量表达式:值不会改变并且在编译过程就能得到计算结果的表达式. 字面值属于常量表达式,用常量表达式初始化的const对象也是常量表达式. 一个对象(或表达式)是不是常量表达式由它的数据类型和初始值共同 ...

  2. 请求神器 postman安装

    1. 先下载postman(http://pan.baidu.com/s/1pLERz5p 密码:aqy2) 2.将你的包存放在文件夹中 列如名称为postman 3.在Chrome的地址栏中输入:c ...

  3. 最全免费CDN公共库——网站提速

    开源静态文件 CDN 我们的目标是提供这样一个仓库,让它尽可能全面收录优秀的开源库,并免费为之提供 CDN 加速服务,使之有更好的访问速度和稳定的环境.同时,我们也提供开源库源接入的入口,让所有人都可 ...

  4. springboot中.yml没有spring的小叶子标志解决办法

    我的idea springboot项目中有两个.yml文件,一个application.yml,一个log4j2.yml,但是只有application.yml显示的是树叶图标,如下所示 做如下配置后 ...

  5. [转] 指定进程运行的CPU

    转自:https://www.cnblogs.com/liuhao/archive/2012/06/21/2558069.html coolshell最新的文章<性能调优攻略>在“多核CP ...

  6. python 获取本机IP的三种方式

    python获取本机IP的方式 第一种: #!/usr/bin/python import socket import fcntl import struct def get_ip_address(i ...

  7. LwIP Application Developers Manual11---Initializing lwIP

    1.前言 2.Initialization for simple lwIP 查看doc/rawapi.txt来获得更多官方信息 #if NO_SYS /* Network interface vari ...

  8. vc++基础班[28]---动态数组及动态链表的讲解

    C++中也有相应的动态数组.动态链表.映射表的模板类,就是STL中的:vector.list.map 他们属于C++标准中的一部分,对于程序的移植性来说也是不错的,但是在MFC编程中使用 CArray ...

  9. 【转】HashMap实现原理及源码分析

    哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景极其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出 ...

  10. LOJ 6277-6280 数列分块入门 1-4

    数列分块是莫队分块的前置技能,练习一下 1.loj6277 给出一个长为n的数列,以及n个操作,操作涉及区间加法,单点查值. 直接分块+tag即可 #include <bits/stdc++.h ...