zoukankan      html  css  js  c++  java
  • MySQL Hardware--FIO压测

    FIO参数

    filename=/export/1.txt 支持文件系统或者裸设备,-filename=/dev/sda2或-filename=/dev/sdb
    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         同上,提定数据块的大小范围
    size=5g                  本次的测试文件大小为5g,以每次4k的io进行测试
    numjobs=30               本次的测试线程为30
    runtime=1000             测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止
    ioengine=psync           io引擎使用pync方式,如果要使用libaio引擎,需要yum install libaio-devel包
    rwmixwrite=30            在混合读写的模式下,写占30%
    group_reporting          关于显示结果的,汇总每个进程的信息
    lockmem=1g               只使用1g内存进行测试
    zero_buffers             用0初始化系统buffer
    nrfiles=8                每个进程生成文件的数量

    ioengine参数

    sync:Basic read(2) or write(2) I/O. fseek(2) is used to position the I/O location.
    
    psync:Basic pread(2) or pwrite(2) I/O.
    
    vsync: Basic readv(2) or writev(2) I/O. Will emulate queuing by coalescing adjacents IOs into a single submission.
    
    libaio: Linux native asynchronous I/O.
    
    posixaio: glibc POSIX asynchronous I/O using aio_read(3) and aio_write(3).
    
    mmap: File is memory mapped with mmap(2) and data copied using memcpy(3).
    
    splice: splice(2) is used to transfer the data and vmsplice(2) to transfer data from user-space to the kernel.
    
    syslet-rw: Use the syslet system calls to make regular read/write asynchronous.
    
    sg:SCSI generic sg v3 I/O.
    
    net : Transfer over the network. filename must be set appropriately to `host/port’ regardless of data direction. If receiving,only the port argument is used.
    
    netsplice: Like net, but uses splice(2) and vmsplice(2) to map data and send/receive.
    
    guasi:  The GUASI I/O engine is the Generic Userspace Asynchronous Syscall Interface approach to asycnronous I/O.

    测试结果解读

    4k随机读写,70%读+30%写,30个并发

    fio -filename=/export/1.txt -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=4k -size=10G -numjobs=30 -runtime=60 -group_reporting -name=randrw_70read_4k

    输出结果:

    Jobs: 30 (f=30): [mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm] [100.0% done] [99648K/42236K/0K /s] [24.1K/10.6K/0  iops] [eta 00m:00s]
    randrw_70read_4k: (groupid=0, jobs=30): err= 0: pid=4183: Sun May  5 14:56:16 2019
      read : io=5873.2MB, bw=100232KB/s, iops=25057 , runt= 60002msec
        clat (usec): min=129 , max=17247 , avg=872.95, stdev=884.86
         lat (usec): min=129 , max=17247 , avg=873.04, stdev=884.86
        clat percentiles (usec):
         |  1.00th=[  141],  5.00th=[  149], 10.00th=[  157], 20.00th=[  175],
         | 30.00th=[  193], 40.00th=[  788], 50.00th=[  988], 60.00th=[ 1096],
         | 70.00th=[ 1192], 80.00th=[ 1304], 90.00th=[ 1448], 95.00th=[ 1576],
         | 99.00th=[ 2640], 99.50th=[ 8512], 99.90th=[ 9152], 99.95th=[ 9280],
         | 99.99th=[10048]
        bw (KB/s)  : min= 2680, max= 3992, per=3.34%, avg=3342.81, stdev=180.17
      write: io=2519.1MB, bw=43005KB/s, iops=10751 , runt= 60002msec
        clat (usec): min=45 , max=21382 , avg=750.66, stdev=874.94
         lat (usec): min=45 , max=21382 , avg=750.85, stdev=874.94
        clat percentiles (usec):
         |  1.00th=[   52],  5.00th=[   57], 10.00th=[   60], 20.00th=[   68],
         | 30.00th=[   79], 40.00th=[  644], 50.00th=[  868], 60.00th=[  988],
         | 70.00th=[ 1080], 80.00th=[ 1192], 90.00th=[ 1320], 95.00th=[ 1448],
         | 99.00th=[ 1816], 99.50th=[ 8384], 99.90th=[ 9024], 99.95th=[ 9280],
         | 99.99th=[ 9920]
        bw (KB/s)  : min= 1016, max= 2064, per=3.34%, avg=1434.25, stdev=131.77
        lat (usec) : 50=0.06%, 100=11.02%, 250=26.21%, 500=0.67%, 750=2.40%
        lat (usec) : 1000=13.91%
        lat (msec) : 2=44.51%, 4=0.41%, 10=0.79%, 20=0.01%, 50=0.01%
      cpu          : usr=0.19%, sys=2.19%, ctx=4148485, majf=0, minf=18446744073708663675
      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=1503524/w=645100/d=0, short=r=0/w=0/d=0
    
    Run status group 0 (all jobs):
       READ: io=5873.2MB, aggrb=100231KB/s, minb=100231KB/s, maxb=100231KB/s, mint=60002msec, maxt=60002msec
      WRITE: io=2519.1MB, aggrb=43005KB/s, minb=43005KB/s, maxb=43005KB/s, mint=60002msec, maxt=60002msec
    
    Disk stats (read/write):
      sda: ios=1499788/643481, merge=0/1, ticks=271811/40234, in_queue=311058, util=98.88%

    缩写解释:

    io=执行了多少M的IO
    
    bw=平均IO带宽
    iops=IOPS
    runt=线程运行时间
    slat=提交延迟
    clat=完成延迟
    lat=响应时间
    bw=带宽
    cpu=利用率
    IO depths=io队列
    IO submit=单个IO提交要提交的IO数
    IO complete=Like the above submit number, but for completions instead.
    IO issued=The number of read/write requests issued, and how many of them were short.
    IO latencies=IO完延迟的分布
    
    io=总共执行了多少size的IO
    aggrb=group总带宽
    minb=最小.平均带宽.
    maxb=最大平均带宽.
    mint=group中线程的最短运行时间.
    maxt=group中线程的最长运行时间.
    
    ios=所有group总共执行的IO数.
    merge=总共发生的IO合并数.
    ticks=Number of ticks we kept the disk busy.
    io_queue=花费在队列上的总共时间.
    util=磁盘利用率

    在8块800GB的SSD做RAID 10的存储上使用psync引擎进行测试,测试结果:

    4k+70%随机读+30%随机写: 24.1K+10.6K
    4k+100%随机读: 127K
    4k+100%随机写: 16.2K
    
    
    1k+70%随机读+30%随机写: 23.4K+10.4K
    1k+100%随机读: 131K
    1k+100%随机写: 13.8K

    上面跑的时间较短,测试误差较大!

    抄自:

    https://www.cnblogs.com/raykuan/p/6914748.html

    http://blog.yufeng.info/archives/1497

    http://blog.yufeng.info/archives/677

  • 相关阅读:
    【Nodejs】Http模块01
    第三周周报_微信开发(上)
    Java 程序设计入门_第一周(下)
    Java 程序设计入门_第一周(上)
    NLP with Python-Chapter1 language Processiong and Python--1.1 compute with Language :texts and words
    使用Python访问网络数据 python network-data 第六章(2)
    #1 依次调用脚本
    关于安装第三方模块和PILLOW
    介绍下我治几~
    fibnacci数列
  • 原文地址:https://www.cnblogs.com/gaogao67/p/10813157.html
Copyright © 2011-2022 走看看