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

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

    

最新文章

  1. CentOS 6.5 搭建 LAMP 环境
  2. WP多语言
  3. luigi学习2-在hadoop上运行Top Artists
  4. 为什么国外程序员爱用Mac?
  5. 如何用C#获得文件信息以及扩展信息
  6. 实现CodeFirst自动数据迁移无需命令
  7. Linux下搭建Oracle11g RAC(7)----安装Oracle 软件
  8. gets函数完美替代
  9. BZOJ 1880: [Sdoi2009]Elaxia的路线( 最短路 + dp )
  10. 关于Aspose.Words插入表格单元格的高度问题的解决
  11. Redis客户端断开重连功能要点
  12. 2.基础(Foundations)
  13. 【转】使用Mybatis时遇到的延迟加载造成返回异常的问题——HttpMessageConversionException: Type definition error
  14. jenkins 可以设置最多执行并发执行多少个
  15. git 查看/修改用户名、密码
  16. TensorFlow object detection API应用
  17. Fire Game 双向bfs
  18. Netdata Linux下性能实时监测工具
  19. 部分函数依赖 && 完全函数依赖
  20. html中的一些常用的样式标签

热门文章

  1. linux 初识系统分区
  2. OVS-----CentOS7上搭建基于Open vSwitch的VxLAN隧道实验
  3. RabbitMQ应用场景
  4. P5239 回忆京都
  5. CAN总线芯片SN65HVD230QD介绍
  6. InstallShield 静默安装
  7. Centos 6.x/7.x yum安装php5.6.X(最新版)
  8. windows类书的学习心得
  9. CROSS APPLY和 OUTER APPLY
  10. MSSQL—行转列