微信扫一扫 分享朋友圈

已有 1487 人浏览分享

开启左侧

磁盘测试工具FIO工具安装和使用教程

[复制链接]
1487 0
一、FIO工具安装:
1、查看fio是否安装
rpm –qa|grep fio

2、源码安装(2、3、4任选一个,推荐方法:3、rpm 的二进制安装)
    官网地址:http://freecode.com/projects/fio/
    github地址:https://github.com/axboe/fio
    安装
wget https://github.com/axboe/fio/archive/refs/tags/fio-3.14.tar.gz
tar -zxvf fio-3.14.tar.gz
./configure
make
make install

3、如果未成功就用 rpm 安装 (推荐)
    官网地址:https://pkgs.org/download/fio
image.png
获取fio的rpm安装包:http://mirror.centos.org/centos/7/os/x86_64/Packages/fio-3.7-2.el7.x86_64.rpm
image.png
  1. wget http://mirror.centos.org/centos/7/os/x86_64/Packages/fio-3.7-2.el7.x86_64.rpm
  2. yum install libaio-devel
  3. yum install libibverbs -y
  4. yum install libpmem -y
  5. yum install librados2 -y
  6. yum install librbd1
  7. rpm -ivh fio-3.7-2.el7.x86_64.rpm
复制代码
4、yum安装(不推荐)
yum install fio

5、测试
fio


二、FIO工具使用方法:
参数说明:
    -rw=randwrite:定义测试时的读写策略,可选值如下:随机读:randread,随机写:randwrite,顺序读: read,顺序写:write,混合随机读写:randrw0
    -ioengine=libaio:libaio指的是异步模式,如果是同步就要用sync。定义fio如何下发IO请求,通常有同步IO和异步IO:同步IO一次只能发出一个IO请求, 等待内核完成后才返回。这样对于单个线程IO队列深度总是小于1,但是可以透过多个线程并发执行来解决。通常会用16~32个线程同时工作把IO队列深度塞满。异步IO则通常使用libaio这样的方式一次提交一批IO 请求,然后等待一批的完成,减少交互的次 数,会更有效率
    -direct=1:定义是否使用direct IO,可选值如下:值为0,表示使用buffered IO;值为1,表示使用 direct IO
    -thread:使用pthread_create创建线程,另一种是fork创建进程。进程的开销比线程要大,一般都采用thread测试。
    –numjobs=1:定义测试的并发线程数
    -iodepth=64:定义测试时的IO队列深度,默认为1。此处定义的队列深度是指每个线程的队列深度, 如果有多个线程测试,意味着每个线程都是此处定义的队列深度。fio总的IO并发数 =iodepth * numjobs。
    -filename:定义测试文件(设备)的名称。此处选择文件,则代表测试文件系统的性能,例如:- filename=/opt/fiotest/fiotest.txt;此处选择设备名称,则代表测试裸盘的性能,例:-filename=/dev/vdb1
    。如果在已经分区、并创建文件系统,且已写入数据的磁盘上进行性能测试,请注意
    filename选择指定文件,以避免覆盖文件系统和原有数据。
    -size=100M:定义测试IO操作的数据量,若未指定runtime这类参数,fio会将指定大小的数据量全部 读/写完成,然后才停止测试。该参数的值,可以是带单位的数字,比如size=10G,表
    示读/写的数据量为10GB;也可是百分数,比如size=20%,表示读/写的数据量占该设
    备总文件的20%的空间。建议测试数据量为内存两倍大,尽量避免缓存影响。
    -name=job1:定义测试任务名称。
    -bs=4k:定义IO的块大小(block size),单位是k、K、m和M等,默认IO块大小为4 KB。
    –output TestResult.log:日志输出到TestResult.log。
    -runtime:定义测试时间。如果未配置,则持续将size指定的文件大小,以每次bs值为分块大小读/ 写完。
    -group_reporting:定义测试结果显示模式,group_reporting 表示汇总每个进程的统计信息,而非以不同 job汇总展示信息。

其它信息:
    lockmem=1g 只使用1g内存进行测试。
    zero_buffers 用0初始化系统buffer。
    nrfiles=8 每个进程生成文件的数量。

磁盘读写常用测试点:
    Read=100% Ramdon=100% rw=randread (100%随机读)
    Read=100% Sequence=100% rw=read (100%顺序读)
    Write=100% Sequence=100% rw=write (100%顺序写)
    Write=100% Ramdon=100% rw=randwrite (100%随机写)
    Read=70% Sequence=100% rw=rw, rwmixread=70, rwmixwrite=30
    (70%顺序读,30%顺序写)
    Read=70% Ramdon=100% rw=randrw, rwmixread=70, rwmixwrite=30
    (70%随机读,30%随机写)

每次测试前执行 echo 3 > /proc/sys/vm/drop_caches 清理缓存。
-ioengine=libaio、-iodepth=32可选/可不选

1)顺序写:
fio -direct=1 -iodepth=32 -rw=write -ioengine=libaio -bs=4M -size=128G -numjobs=1 \
-runtime=600 -group_reporting -filename=/dev/[device] -name=Write_BandWidth_Test

2)随机写:
fio -direct=1-iodepth=128 -rw=randwrite -ioengine=libaio -bs=4K -size=128G - numjobs=1 \
-runtime=600 -group_reporting -filename=/dev/[device] -name=Rand_Write_IOPS_Test

3)顺序读:
fio -direct=1 -iodepth=32 -rw=read -ioengine=libaio -bs=4M -size=128G -numjobs=1 \
-runtime=600 -group_reporting -filename=/dev/[device] -name=Read_BandWidth_Test

4)随机读:
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4K -size=128G - numjobs=1 \
-runtime=600 -group_reporting -filename=/dev/[device] -name=Rand_Read_IOPS_Test

5)混合随机读写:
    描述:70%随机读,30%随机写,以2M块文件大小向/dev/sdb:/dev/sdc:/dev/sdd三个分区存储上随机读写300s时间
fio -output=/tmp/100S100W -name=100S100W -filename=/dev/sdb:/dev/sdc:/dev/sdd -ioengine=libaio -direct=1 -blocksize=2M -runtime=300 -rw=randrw -rwmixread=70 -rwmixwrite=30 -iodepth=32 -numjobs=1

三、监控磁盘IO命令
    iostat –mx 1 (iostat的安装方法:yum install sysstat)

  1. [root@localhost]#  iostat -mx 1
  2. Linux 2.6.32-220.el6.x86_64 (localhost.localdomain) XXXX年XX月XX日 _x86_64_ (32 CPU)
  3. avg-cpu: %user %nice %system %iowait %steal %idle
  4. 12.74 0.00 8.95 0.04 0.00 78.27
  5. Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
  6. sda 0.18 10.05 0.31 7.67 0.01 0.07 18.77 0.00 0.28 0.14 0.11
  7. sdb 0.69 0.10 15.74 11.21 0.17 2.45 190.77 0.34 12.10 0.23 0.63
  8. sdc 0.43 0.06 9.58 5.94 0.13 1.20 176.32 0.03 1.70 0.16 0.25```
复制代码


免责声明:
1,海欣资源网所发布的资源由网友上传和分享,不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
2,海欣资源网的资源来源于网友分享,仅限用于学习交流和测试研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
3,海欣资源网所发布的资源由网友上传和分享,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。
4,如果您喜欢,请支持正版,购买正版,得到更好的正版服务,如有侵权,请联系我们删除并予以真诚的道歉,联系方式邮箱 haixinst@qq.com
海欣资源-企业信息化分享平台。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

0

粉丝

19

主题
热度排行
回复排行
最新贴子

Archiver|手机版|海欣资源 ( 湘ICP备2021008090号-1 )|网站地图

GMT+8, 2024-6-13 13:14 , Gzip On, MemCached On.

免责声明:本站所发布的资源和文章均来自网络,仅限用于学习交流和测试研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站信息来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 如果您喜欢,请支持正版,购买正版,得到更好的正版服务,如有侵权,请联系我们删除并予以真诚的道歉。