zoukankan      html  css  js  c++  java
  • linux使用FIO测试磁盘的iops

    摘自:

    http://blog.csdn.net/hshl1214/article/details/49762149

    FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。
    fio 官网地址:http://freshmeat.net/projects/fio/

    一,FIO安装
    wget http://brick.kernel.dk/snaps/fio-2.0.7.tar.gz
    yum install libaio-devel
    tar -zxvf fio-2.0.7.tar.gz
    cd fio-2.0.7
    make
    make install

    二,FIO用法:

    随机读:
    fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G -numjobs=10 -runtime=1000 -group_reporting -name=mytest

    说明:
    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                每个进程生成文件的数量。

    顺序读:
    fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

    随机写:
    fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

    顺序写:
    fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

    混合随机读写:
    fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop

    三,实际测试范例:

    [root@localhost ~]# fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest1
    mytest1: (g=0): rw=randrw, bs=16K-16K/16K-16K, ioengine=psync, iodepth=1

    mytest1: (g=0): rw=randrw, bs=16K-16K/16K-16K, ioengine=psync, iodepth=1
    fio 2.0.7
    Starting 30 threads
    Jobs: 1 (f=1): [________________m_____________] [3.5% done] [6935K/3116K /s] [423 /190  iops] [eta 48m:20s] s]               
    mytest1: (groupid=0, jobs=30): err= 0: pid=23802
      read : io=1853.4MB, bw=18967KB/s, iops=1185 , runt=100058msec
        clat (usec): min=60 , max=871116 , avg=25227.91, stdev=31653.46
         lat (usec): min=60 , max=871117 , avg=25228.08, stdev=31653.46
        clat percentiles (msec):
         |  1.00th=[    3],  5.00th=[    5], 10.00th=[    6], 20.00th=[    8],
         | 30.00th=[   10], 40.00th=[   12], 50.00th=[   15], 60.00th=[   19],
         | 70.00th=[   26], 80.00th=[   37], 90.00th=[   57], 95.00th=[   79],
         | 99.00th=[  151], 99.50th=[  202], 99.90th=[  338], 99.95th=[  383],
         | 99.99th=[  523]
        bw (KB/s)  : min=   26, max= 1944, per=3.36%, avg=636.84, stdev=189.15
      write: io=803600KB, bw=8031.4KB/s, iops=501 , runt=100058msec
        clat (usec): min=52 , max=9302 , avg=146.25, stdev=299.17
         lat (usec): min=52 , max=9303 , avg=147.19, stdev=299.17
        clat percentiles (usec):
         |  1.00th=[   62],  5.00th=[   65], 10.00th=[   68], 20.00th=[   74],
         | 30.00th=[   84], 40.00th=[   87], 50.00th=[   89], 60.00th=[   90],
         | 70.00th=[   92], 80.00th=[   97], 90.00th=[  120], 95.00th=[  370],
         | 99.00th=[ 1688], 99.50th=[ 2128], 99.90th=[ 3088], 99.95th=[ 3696],
         | 99.99th=[ 5216]
        bw (KB/s)  : min=   20, max= 1117, per=3.37%, avg=270.27, stdev=133.27
        lat (usec) : 100=24.32%, 250=3.83%, 500=0.33%, 750=0.28%, 1000=0.27%
        lat (msec) : 2=0.64%, 4=3.08%, 10=20.67%, 20=19.90%, 50=17.91%
        lat (msec) : 100=6.87%, 250=1.70%, 500=0.19%, 750=0.01%, 1000=0.01%
      cpu          : usr=1.70%, sys=2.41%, ctx=5237835, majf=0, minf=6344162
      IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
         submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
         complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
         issued    : total=r=118612/w=50225/d=0, short=r=0/w=0/d=0

    Run status group 0 (all jobs):
       READ: io=1853.4MB, aggrb=18966KB/s, minb=18966KB/s, maxb=18966KB/s, mint=100058msec, maxt=100058msec
      WRITE: io=803600KB, aggrb=8031KB/s, minb=8031KB/s, maxb=8031KB/s, mint=100058msec, maxt=100058msec

    Disk stats (read/write):
      sdb: ios=118610/50224, merge=0/0, ticks=2991317/6860, in_queue=2998169, util=99.77%

    主要查看以上红色字体部分的iops

  • 相关阅读:
    AtCoder Grand Contest 015 题解
    AtCoder Grand Contest 014 题解
    AtCoder Grand Contest 013 题解
    AtCoder Grand Contest 012 题解
    AtCoder Grand Contest 011 题解
    AtCoder Grand Contest 010 题解
    AtCoder Grand Contest 009 题解
    NOIP2017 Day2 题解
    博客园主题备份
    多项式全家桶
  • 原文地址:https://www.cnblogs.com/jackchen001/p/7813681.html
Copyright © 2011-2022 走看看