zoukankan      html  css  js  c++  java
  • fio压测

    fio工具介绍

    用于测试存储设备IO性能。
    当存储设备中存在用户数据时,严谨使用fio进行写操作!!!

    参数介绍

    rw:指定测试的读写方式。read/write/randread/randwrite/randrw,分别代表顺序读/顺序写/随机读/随机写/随机读写混合。
    rwmixwrite:指定读写混合时,设定写的比例,单位为%。
    bs:指定IO的粒度。一般测试顺序读写使用1024k,随机读写使用8k。
    runtime:指定测试的时长,单位为秒。
    size:指定测试的设备大小。
    ioengine:指定IO引擎,一般使用Linux默认的异步IO引擎libaio。
    direct:固定设为1,绕过一些操作系统级的cache等机制。
    iodepth:指定队列深度,固定设为1。
    numjobs:指定线程数。
    group_reporting:汇总所有线程的测试结果,便于结果分析。

    测试举例

    如下,是一个fio的测试配置模板,使用文件的形式可以同时对多个设备进行压测,统计总体性能值。

    用此命令将要压测的盘筛选出来

    qdatamgr qlink show -c | grep Disk
    

    比如编辑一个文件fio-test,测试时执行命令:fio fio-test即可。
    k/l
    主要注意两个参数:
    bs:块大小
    rw:读写模式
    numjobs:线程数,相当于并发数

    模板如下:

    [global]
    
    numjobs=32
    
    rw=randread
    
    bs=8k
    
    runtime=100
    
    ioengine=libaio
    
    direct=1
    
    iodepth=1
    
    name=jicki
    
    group_reporting
    
    [file1]
    
    filename=/dev/qdata/mpath-1s01.3261.01.fioa1
    
    [file2]
    
    filename=/dev/.....
    
    

    fio测试注意事项

    1.测试随机读写时,numjobs从8开始,12..16..20..逐渐往上加,直到IOPS不再上升,此时的结果就是保证IOPS最高时延迟最小的测试值。

    2.测试顺序读写时,numjobs从1开始,2..3..4..往上加,基本思路与以上描述一致。

    3.测试随机读写时要关注IOPS,不要关注IO吞吐;测试顺序读写时要关注IO吞吐,不要关注IOPS。

    4.随机读写测试中,IO延迟不要超过500us。

    测试结果查看

    随机读IOPS测试:

    三处标红的地方分别是瞬时IOPS、平均IOPS、平均IO延迟了。

    顺序读IO吞吐测试:

    三处标红的地方分别是瞬时IO吞吐、平均IO吞吐、平均IO延迟。

    四路服务器测试的小tips

    1:如果4路服务器上做fio测试绑定cpu核心以后,数值还是没有提高,可以参考把jobs数提高到很高的位置,具体打个比方4路服务器总共有129个核心数,那可以在数值不提高的情况下把Jobs数提高到90,然后跑一次看看,数值有否提升。
    2:如果fio测试的磁盘比较少,而cpu的核心数又非常多,那绑定核心推荐一块磁盘绑定第一个cpu的1-12的核心,第2快磁盘绑定第2个cpu的33-45核心,以此类推,如果磁盘比较多的话,那就按照正常绑定核心数就行。
    不绑核时单个计算节点压测,随机读IOPS为40万
    mpstat监控结果如下:
    mpstat -P ALL 1
    Linux 2.6.32-573.el6.x86_64 (yxqrac1) 11/11/2016 x86_64 (192 CPU)
    04:36:48 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
    04:36:49 AM all 0.18 0.00 1.15 10.44 0.00 1.41 0.00 0.00 86.81
    04:36:49 AM 0 0.00 0.00 0.00 7.22 0.00 0.00 0.00 0.00 92.78
    04:36:49 AM 1 0.00 0.00 1.11 61.11 0.00 35.56 0.00 0.00 2.22
    04:36:49 AM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 4 1.14 0.00 1.14 63.64 0.00 31.82 0.00 0.00 2.27
    04:36:49 AM 5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 7 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 8 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 9 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 11 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 12 2.17 0.00 3.26 76.09 0.00 18.48 0.00 0.00 0.00
    04:36:49 AM 13 0.00 0.00 0.00 1.00 0.00 0.00 0.00 0.00 99.00
    04:36:49 AM 14 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 15 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 18 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 19 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 21 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 22 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 23 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 24 0.00 0.00 31.00 0.00 0.00 69.00 0.00 0.00 0.00
    04:36:49 AM 25 4.04 0.00 10.10 85.86 0.00 0.00 0.00 0.00 0.00
    04:36:49 AM 26 4.00 0.00 11.00 85.00 0.00 0.00 0.00 0.00 0.00
    04:36:49 AM 27 1.01 0.00 4.04 94.95 0.00 0.00 0.00 0.00 0.00
    04:36:49 AM 28 0.00 0.00 0.00 100.00 0.00 0.00 0.00 0.00 0.00
    04:36:49 AM 29 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 30 1.02 0.00 3.06 95.92 0.00 0.00 0.00 0.00 0.00
    04:36:49 AM 31 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
    04:36:49 AM 32 1.04 0.00 1.04 97.92 0.00 0.00 0.00 0.00 0.00

    使用如下脚本绑核:

    [global]
    numjobs=32
    rw=randread
    bs=8k
    runtime=100
    ioengine=libaio
    direct=1
    iodepth=1
    name=jicki
    group_reporting
    [file1]
    filename=/dev/qdata/mpath-1s01.3261.01.fioa1
    cpus_allowed=0-8
    [file2]
    filename=/dev/qdata/mpath-1s01.3261.01.fioa2
    cpus_allowed=9-16
    [file3]
    filename=/dev/qdata/mpath-1s01.3262.01.fiob1
    cpus_allowed=17-24
    [file4]
    filename=/dev/qdata/mpath-1s01.3262.01.fiob2
    cpus_allowed=25-32
    [file5]
    filename=/dev/qdata/mpath-1s01.3263.01.fioc1
    cpus_allowed=33-40
    [file6]
    filename=/dev/qdata/mpath-1s01.3263.01.fioc2
    cpus_allowed=41-48
    [file7]
    filename=/dev/qdata/mpath-1s01.3264.01.fiod1
    cpus_allowed=49-56
    [file8]
    filename=/dev/qdata/mpath-1s01.3264.01.fiod2
    cpus_allowed=57-64
    [file9]
    filename=/dev/qdata/mpath-1s01.3265.01.fioe1
    cpus_allowed=65-72
    [file10]
    filename=/dev/qdata/mpath-1s01.3265.01.fioe2
    cpus_allowed=73-80
    [file1]
    filename=/dev/qdata/mpath-1s02.3261.01.fioa1
    cpus_allowed=81-88
    [file2]
    filename=/dev/qdata/mpath-1s02.3261.01.fioa2
    cpus_allowed=89-96
    [file3]
    filename=/dev/qdata/mpath-1s02.3262.01.fiob1
    cpus_allowed=97-104
    [file4]
    filename=/dev/qdata/mpath-1s02.3262.01.fiob2
    cpus_allowed=105-112
    [file5]
    filename=/dev/qdata/mpath-1s02.3263.01.fioc1
    cpus_allowed=113-120
    [file6]
    filename=/dev/qdata/mpath-1s02.3263.01.fioc2
    cpus_allowed=121-128
    [file7]
    filename=/dev/qdata/mpath-1s02.3264.01.fiod1
    cpus_allowed=129-136
    [file8]
    filename=/dev/qdata/mpath-1s02.3264.01.fiod2
    cpus_allowed=137-144
    [file9]
    filename=/dev/qdata/mpath-1s02.3265.01.fioe1
    cpus_allowed=145-152
    [file10]
    filename=/dev/qdata/mpath-1s02.3265.01.fioe2
    cpus_allowed=153-160
    [file1]
    filename=/dev/qdata/mpath-1s03.3261.01.fioa1
    cpus_allowed=161-168
    [file2]
    filename=/dev/qdata/mpath-1s03.3261.01.fioa2
    cpus_allowed=169-176
    [file3]
    filename=/dev/qdata/mpath-1s03.3262.01.fiob1
    cpus_allowed=177-184
    [file4]
    filename=/dev/qdata/mpath-1s03.3262.01.fiob2
    cpus_allowed=185-191
    

    fio在测试时,将针对不同的盘发起的测试线程固定在特定的核上,彼此分离,使得每个核上都分配到测试线程,以此最大化CPU的利用。

    绑核之后其他参数不变,单个计算节点随机读可达85万IOPS
    mpstat监测结果:

    10:09:22 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
    10:35:14 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
    10:35:15 AM all 21.96 0.00 69.02 0.07 0.00 1.59 0.00 0.00 7.37
    10:35:15 AM 0 28.28 0.00 70.71 0.00 0.00 0.00 0.00 0.00 1.01
    10:35:15 AM 1 27.00 0.00 68.00 0.00 0.00 3.00 0.00 0.00 2.00
    10:35:15 AM 2 23.23 0.00 36.36 0.00 0.00 40.40 0.00 0.00 0.00
    10:35:15 AM 3 25.00 0.00 73.00 0.00 0.00 0.00 0.00 0.00 2.00
    10:35:15 AM 4 25.00 0.00 68.00 0.00 0.00 6.00 0.00 0.00 1.00
    10:35:15 AM 5 26.73 0.00 61.39 0.00 0.00 10.89 0.00 0.00 0.99
    10:35:15 AM 6 25.00 0.00 64.00 0.00 0.00 10.00 0.00 0.00 1.00
    10:35:15 AM 7 23.76 0.00 65.35 0.00 0.00 9.90 0.00 0.00 0.99
    10:35:15 AM 8 24.75 0.00 64.36 0.00 0.00 10.89 0.00 0.00 0.00
    10:35:15 AM 9 25.25 0.00 65.66 0.00 0.00 9.09 0.00 0.00 0.00
    10:35:15 AM 10 18.00 0.00 28.00 0.00 0.00 54.00 0.00 0.00 0.00
    10:35:15 AM 11 24.24 0.00 64.65 0.00 0.00 10.10 0.00 0.00 1.01
    10:35:15 AM 12 29.00 0.00 59.00 0.00 0.00 12.00 0.00 0.00 0.00
    10:35:15 AM 13 24.00 0.00 67.00 0.00 0.00 9.00 0.00 0.00 0.00
    10:35:15 AM 14 29.29 0.00 61.62 0.00 0.00 9.09 0.00 0.00 0.00
    10:35:15 AM 15 27.00 0.00 64.00 0.00 0.00 9.00 0.00 0.00 0.00
    10:35:15 AM 16 18.63 0.00 29.41 0.00 0.00 51.96 0.00 0.00 0.00
    10:35:15 AM 17 26.26 0.00 64.65 0.00 0.00 9.09 0.00 0.00 0.00
    ···
    ···
    ···
    

    *基本上,CPU的所有核都得到了有效利用

    Tips:
    顺序读和顺序写的bw如果数值相差比较大,可以先去官网查询该盘的性能参数,例如:
    intel P4600 nvme盘官网查询参数如下:顺序读和顺序写相差2倍多。

  • 相关阅读:
    第十周作业--阅读(五一)
    第九周作业
    第八周作业
    第七周作业
    第六周作业
    模板
    第五周作业
    第四周作业
    第三周作业
    文件
  • 原文地址:https://www.cnblogs.com/cnhyk/p/11765258.html
Copyright © 2011-2022 走看看