zoukankan      html  css  js  c++  java
  • 磁盘测试工具FIO工具安装和使用方法

    一、FIO工具安装:

    1、查看fio是否安装

    [root@localhost /]#rpm –qa|grep fio

    2、源码安装(推荐)

    官网地址:http://freecode.com/projects/fio/

    源码安装包:http://brick.kernel.dk/snaps/fio-2.1.10.tar.gz

    安装

    [root@lh fio-2.1.10]# ./configure
    [root@lh fio-2.1.10]# make
    [root@lh fio-2.1.10]# make install
    [root@lh fio-2.1.10]# fio --help

    3、如果未成功就用rpm安装

    获取fio的rpm安装包然后

    [root@localhost tmp]#rpm -ivh fio-2.0.9-1.el6.rf.x86_64.rpm
    warning: fio-2.0.9-1.el6.rf.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
    Preparing... ########################################### [100%]
    1:fio ########################################### [100%]

    4、异常及解决方法

    1. fio: failed to load engine libaio
    答:yum install libaio-devel
    然后重新编译fio

    二、FIO工具使用方法:
    参数说明:
    filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的data目录。
    direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
    rw=randwrite 测试随机写的I/O
    rw=randrw 测试随机写和读的I/O
    bs=16k 单次io的块文件大小为16k
    bsrange=512-2048 同上,提定数据块的大小范围
    size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。
    numjobs=30 本次的测试线程为30.
    runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
    ioengine=psync io引擎使用pync方式
    rwmixwrite=30 在混合读写的模式下,写占30%
    group_reporting 关于显示结果的,汇总每个进程的信息。
    此外
    lockmem=1g 只使用1g内存进行测试。
    zero_buffers 用0初始化系统buffer。
    nrfiles=8 每个进程生成文件的数量。
    磁盘读写常用测试点:
    1. Read=100% Ramdon=100% rw=randread (100%随机读)
    2. Read=100% Sequence=100% rw=read (100%顺序读)
    3. Write=100% Sequence=100% rw=write (100%顺序写)
    4. Write=100% Ramdon=100% rw=randwrite (100%随机写)
    5. Read=70% Sequence=100% rw=rw, rwmixread=70, rwmixwrite=30
    (70%顺序读,30%顺序写)
    6. Read=70% Ramdon=100% rw=randrw, rwmixread=70, rwmixwrite=30
    (70%随机读,30%随机写)
    1) 顺序写:
    描述:向/dev/sda分区存储上以2M块文件大小顺序写1100GB文件

    fio -output=/tmp/100S100W -name=100S100W -filename=/dev/sda -ioengine=libaio -direct=1 -blocksize=2M -size=1100GB -rw=write -iodepth=8 -numjobs=1

    2)随机写:
    描述:向/dev/sda分区存储上以2M块文件大小随机写1100GB文件

    fio -output=/tmp/100R100W -name=100R100W -filename=/dev/sdb:/dev/sdc:/dev/sdd -ioengine=libaio -direct=1 -blocksize=2M -size=3356GB -rw=randwrite -iodepth=8 -numjobs=1

    3)顺序读:

    fio -output=/tmp/100S100W -name=100S100W -filename=/dev/sda -ioengine=libaio -direct=1 -blocksize=2M –runtime=1800 -rw=read -iodepth=8 -numjobs=1

    4) 随机读:

    fio -output=/tmp/100S100Wsdbsdcsdd -name=100S100W -write_bw_log=bw_log -write_lat_log=lat_log -filename=/dev/sdb:/dev/sdc:/dev/sdd -ioengine=libaio -direct=1 -blocksize=2M -runtime=1800 -rw=randread -iodepth=32 -numjobs=1

    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)

    [root@localhost tmp]# iostat -mx 1
    Linux 2.6.32-220.el6.x86_64 (localhost.localdomain) XXXX年XX月XX日 _x86_64_ (32 CPU)
    avg-cpu: %user %nice %system %iowait %steal %idle
    12.74 0.00 8.95 0.04 0.00 78.27
    Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
    sda 0.18 10.05 0.31 7.67 0.01 0.07 18.77 0.00 0.28 0.14 0.11
    sdb 0.69 0.10 15.74 11.21 0.17 2.45 190.77 0.34 12.10 0.23 0.63
    sdc 0.43 0.06 9.58 5.94 0.13 1.20 176.32 0.03 1.70 0.16 0.25
  • 相关阅读:
    前端跨域整理
    URL HTML 统一资源定位器(Uniform Resource Locators)
    css属性选择器*=,|=,^=,$=,*=的区别
    JavaScript运算符 ~,~~,|,&,&&
    js获取url参数值的几种方式
    vue 常用插件集合(最全)
    Echarts曲线设置多条X轴和Y轴
    vue中引入.svg图标,使用iconfont图标库(SvgIcon组件使用)
    采用集成的Windows验证和使用Sql Server身份验证进行数据库的登录
    VS如何设置类或函数前不显示引用的数量
  • 原文地址:https://www.cnblogs.com/bugutian/p/6653083.html
Copyright © 2011-2022 走看看