zoukankan      html  css  js  c++  java
  • fio 测试磁盘性能

     在磁盘测试中最关心的几个指标分别为:

    iops(每秒执行的IO次数)、bw(带宽,每秒的吞吐量)、lat(每次IO操作的延迟)。 

    当每次IO操作的block较小时,如512bytes/4k/8k等,测试的主要是iops。 

    当每次IO操作的block较大时,如256k/512k/1M等,测试的主要是bw。

    1. FIO 简介

      FIO 是一款 用于对磁盘进行性能测试的工具。可以测试IOPS,吞吐量,IO延迟等主要性能指标。而且支持多种IO引擎。

    2. FIO 下载

      下载地址:http://brick.kernel.dk/snaps/ 

      打开以上网址,选择自己需要的版本并下载。比如:

      

    wget http://brick.kernel.dk/snaps/fio-3.5.tar.gz
    --2018-03-26 14:19:37-- http://brick.kernel.dk/snaps/fio-3.5.tar.gz
    正在解析主机 brick.kernel.dk... 216.160.245.99
    正在连接 brick.kernel.dk|216.160.245.99|:80... 已连接。
    已发出 HTTP 请求,正在等待回应... 302 Found
    位置:http://113.215.21.45:80/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/brick.kernel.dk/snaps/fio-3.5.tar.gz [跟随至新的 URL]
    --2018-03-26 14:19:39-- http://113.215.21.45/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/brick.kernel.dk/snaps/fio-3.5.tar.gz
    正在连接 113.215.21.45:80... 已连接。
    已发出 HTTP 请求,正在等待回应... 200 OK
    长度:729544 (712K) [application/x-gzip]
    正在保存至: “fio-3.5.tar.gz”

    72% [======================================================================> ] 532,565 154K/s eta(英国中部时
    83% [=================================================================================> ] 610,757 159K/s eta(英国中部时
    84% [=================================================================================> ] 616,549 149K/s eta(英国中部时
    96% [=============================================================================================> ] 706,325 162K/s eta(英国中部时
    100%[=================================================================================================>] 729,544 164K/s in 4.3s

    2018-03-26 14:19:44 (164 KB/s) - 已保存 “fio-3.5.tar.gz” [729544/729544])

      或者下载后再上传至服务器。

     

    3. 解压并安装

      

    # tar -xzvf ./fio-3.5.tar.gz
    .... 省略输出
    # cd fio-3.5
    # make && make install
    .... 省略输出
    # which fio
    /usr/local/bin/fio

    4. 使用说明

      

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

    5. 测试示例

      混合测试: 

    fio -filename=/tmp/test -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=512b -size=200m -numjobs=10 -runtime=60 -group_reporting -name=mytest

     

    顺序读:
    fio -filename=/dev/test -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest
    
    随机写:
    fio -filename=/dev/test -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest
    
    顺序写:
    fio -filename=/dev/test -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest

        

  • 相关阅读:
    设计模式-抽象工厂模式
    装修预算-资料收集
    SQL中存储过程和函数的区别
    View
    数据表优化
    Entity Framework 基础
    html5标准
    JS整数验证
    vue 页面切换从右侧切入效果
    vue动态设置Iview的多个Input组件自动获取焦点
  • 原文地址:https://www.cnblogs.com/halberd-lee/p/8650737.html
Copyright © 2011-2022 走看看