云测试软件详解,云计算&存储测试:FIO工具入门与实战

一、关于FIO

1.1 简介

FIO是一个开源的I/O压力测试工具,主要是用来测试磁盘的IO性能,也可测试cpu,nic的IO性能。它可以支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, network, syslet, guasi, solarisaio, I/Opriorities (针对新的Linux内核), rate I/O, forked or threaded jobs等。

2.1 常用测试场景

FIO相关测试场景:

顺序读写 (吞吐量,常用单位为MB/s):文件在硬盘上存储位置是连续的。

适用场景:大文件拷贝(比如视频音乐)。速度即使很高,对数据库性能也没有参考价值。

4K随机读写 (IOPS,常用单位为次):在硬盘上随机位置读写数据,每次4KB。

适用场景:操作系统运行、软件运行、数据库。

二、FIO安装

有三种安装方式

2.1 apt安装(Ubuntu)#更新apt源  apt update  #安装fio  apt-get install fio

2.2 使用yum安装(centos)#更新yum源  yum install epel-release #安装fio  yum install libaio-devel fio

2.3 手动安装wget http://brick.kernel.dk/snaps/fio-2.2.10.tar.gz yum install libaio-devel tar -zxvf fio-2.2.10.tar.gz cd fio-2.2.10  make  make install

2.4 验证是否安装成功

输入:fio -h,看是否安装成功

f3aa3f274af17427ba5105d8814a4e67.png三、FIO使用

3.1 fio参数解释可以使用fio -help查看每个参数,具体的参数左右可以在官网查看how to文档,如下为几个常见的参数描述

filename=/dev/emcpowerb  支持文件系统或者裸设备,--filename=/dev/sdc或者--filename=/mnt/ccg/test_data(挂载的目录下任意文件名)

direct=1                                测试过程绕过机器自带的buffer,使测试结果更真实

rw=randwread                      测试随机读的I/O

rw=randwrite                        测试随机写的I/O

rw=randrw                            测试随机混合写和读的I/O

rw=read                                测试顺序读的I/O

rw=write                                测试顺序写的I/O

rw=rw                                    测试顺序混合写和读的I/O

bs=4k                                    单次io的块文件大小为4k,如果是测试文件系统,建议和文件系统的块大小保持一致。

bsrange=512-2048               同上,提定数据块的大小范围,这里是随机生成一个范围

time_based                           如果设置的话,即使file已被完全读写或写完,也要执行完runtime规定的时间。它是通过循环执行相同的负载来实现的,与runtime相对应。

ramp_time=time                   设定在记录任何性能信息之前要运行特定负载的时间。这个用来等性能稳定后,再记录日志

size=5g                                本次的测试文件大小为5g,以每次4k的io进行测试,即生成读写的文件大小。

fdatasync=int                       同fsync,但是采用fdatasync()来同步数据,但不同步元数据

sync=bool                            使用sync来进行buffered写。对于多数引擎,这意味着使用O_SYNC

numjobs=30                        本次的测试线程为30

iodepth=1                            队列深度。默认是1,可以通过设置大于1的数来提升并发度。

runtime=1000                     测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止

ioengine=psync                  io引擎使用pync方式,如果要使用libaio引擎,需要yum install libaio-devel包

randrepeat=true                 对于随机IO负载,配置生成器的种子,使得路径是可以预估的,使得每次重复执

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值