zoukankan      html  css  js  c++  java
  • fio硬盘测速windows+linux

    一、FIO工具简介

    Fio工具的介绍网上有很多,都是可以通用的,这里就不做太多个人描述了,直接借鉴一下☺

    fio是一种I / O工具,用于基准测试和压力/硬件验证。它支持19种不同类型的I / O引擎(sync,mmap,libaio,posixaio,SG v3,splice,null,network,syslet,guasi,solarisaio等),

    I / O优先级(适用于较新的Linux内核) ,评估I / O,分叉或线程作业等等。它可以在块设备和文件上工作。fio以简单易懂的文本格式接受职位描述。包含几个示例作业文件。fio显示各

    种I / O性能信息,包括完整的IO延迟和百分位数。Fio在许多地方广泛使用,用于基准测试,QA和验证目的。它支持Linux,FreeBSD,NetBSD,OpenBSD,OS X,OpenSolaris,

    AIX,HP-UX,Android和Windows等操作系统。

    附加FIO官网地址:http://freshmeat.net/projects/fio/,有兴趣的同学可以自己去看看原版的简介

    注意:不要在系统分区做硬盘测试!!!!!!!!!!

    在使用fio工具进行硬盘测试过程中, filename参数指定某个要测试的裸设备(硬盘或分区),切勿在系统分区做测试,会破坏系统分区,而导致系统崩溃。

    这里一定要注意,我就是因为没注意这个问题,在系统分区做了硬盘测速,导致了下图的悲剧。。o(╥﹏╥)o

     

     

    二、FIO使用参数说明

    这里分为两种参数说明来给大家参考,一种是在输入测速命令时,需要使用的参数,一种是得到测速结果时,需要使用的参数

    2.1Fio工具执行读写命令参数说明

    filename: 指定文件(设备)的名称。可以通过冒号分割同时指定多个文件,如filename=/dev/sda:/dev/sdb。

    directory: 设置filename的路径前缀。在后面的基准测试中,采用这种方式来指定设备。

    name: 指定job的名字,在命令行中表示新启动一个job。

    direct: bool类型,如果设置成true (1),表示不使用io buffer。

    ioengine: I/O引擎,现在fio支持19种ioengine。默认值是sync同步阻塞I/O,libaio是Linux的native异步I/O。

    iodepth: 如果ioengine采用异步方式,该参数表示一批提交保持的io单元数。该参数可参考文章“Fio压测工具和io队列深度理解和误区”。

    rw: I/O模式,随机读写,顺序读写等等。

    bs: I/O block大小,默认是4k。

    size: 指定job处理的文件的大小。

    numjobs: 指定job的克隆数(线程)。

    time_based: 如果在runtime指定的时间还没到时文件就被读写完成,将继续重复知道runtime时间结束。

    runtime: 指定在多少秒后停止进程。如果未指定该参数,fio将执行至指定的文件读写完全完成。

    group_reporting: 当同时指定了numjobs了时,输出结果按组显示。

    output:将测速结果输出到对应文件

    lockmem=1g :只使用1g内存进行测试。 
    =zero_buffers: 用0初始化系统buffer。 
    nrfiles=8 :每个进程生成文件的数量。 
    ioscheduler: 尝试切换设备托管文件指定的I / O调度器。
    psync : 同步i/o测试
    libaio : 异步i/o测试,libaio的读写过程简单说来就是你发出一个读写请求,然后你可以开始做其他事情,当读写过程结束时libaio会通知你你的这次请求已经完成

    。。。。还有很多参数,以上只是常用的部分参数

    2.2Fio工具读写测速结果参数说明

     io= 执行了多少M的IO

    bw= 平均IO带宽

    iops=   IOPS

    runt= 线程运行时间

    slat 提交延迟  (stdev指标准差)

    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= 磁盘利用率

    。。。。。同上

    三、   linux使用FIO工具进行硬盘测速方式

    3.1下载安装包并进行安装

    安装包可以从网上下载,也可以从文档结尾的网盘链接内取,这里附上网上的下载地址:https://git.kernel.dk/cgit/fio/

    将安装包使用root用户传输至Linux服务器任意目录下

    将其解压到当前目录:tar –zxvf ./fioxx-xx.tar.gz

     

    进入解压好的fio目录内:cd fioxx-xx/

     

    开始安装fio,依次按顺序执行以下命令:

    ./configure

    make

    make install

    安装完毕以后,输入fio –version 查看fio版本

     

    出现fio版本,说明安装成功

    3.2 使用fio进行硬盘测速

    在root用户下分批次执行以下命令:(以下命令及测速结果全局参数参照Fio使用参数说明)

       100%顺序读:

    fio -filename=/home/read.dat -direct=1 -iodepth 1  -rw=read -ioengine=psync -bs=1024kb -size=4G -numjobs=1 -runtime=180 -group_reporting -name=sqe_100read_4k

    执行结果如下:

    图中红框内的bw项为所需硬盘读取测速结果

     

       100%顺序写:

    fio -filename=/home/write.dat -direct=1 -iodepth 1  -rw=write -ioengine=psync -bs=1024kb -size=4G -numjobs=1 -runtime=180 -group_reporting -name=sqe_100write_4k

    执行结果如下:

    图中红框内的bw项为所需硬盘写入测速结果

     还有两种常用的命令是随机写和随机读,这里我就不一一做演示了,附上命令:

    随机写

    fio -filename=/home/randwrite.dat -direct=1 -iodepth 1 -rw=randwrite -ioengine=psync -bs=1024kb -size=4G -numjobs=1 -runtime=180  -group_reporting -name=randwrite

    随机读

    fio -filename=/home/randread.dat -direct=1 -iodepth 1 -rw=randread -ioengine=psync -bs=1024kb -size=4G -numjobs=1 -runtime=180  -group_reporting -name=randread

    大家还可以根据实际需要进行参数的添加和删除

    四、windows使用FIO工具进行硬盘测速方式

    4.1下载安装包并安装

    windows的在线下载需要某PN,所以这里我也提供了部分windows下32位和64位不同版本的安装包在文章结尾,大家可以根据实际情况进行下载使用                                                                                                                                                                                    

    将下载好的fio安装包解压到本地,选择一个版本,双击fio-xx-xxx.msi进行安装

    安装完毕以后,在C:Program Filesfio目录下找到fio.exe并双击,然后在当前目录下按住shift键,右键打开PowerShell,输入fio –version,出现版本信息,说明安装成功。

     4.2使用fio进行硬盘测速

    在打开的PowerShell窗口依次输入以下命令:(以下命令及测速结果全局参数参照Fio工具参数说明)

             100%顺序读:

    fio.exe --name=4Gread --rw=read --direct=1 --iodepth=1 --blocksize=1024kb --size=4g --ioengine=windowsaio --filename=自定义盘符名称(不可使用系统分区所在盘符!!)--numjobs=1 -group_reporting   --runtime=180

             执行结果如下:

    图中红框内的BW项为所需硬盘读取测速结果

    100%顺序写:

    fio.exe --name=4Gwrite  --rw=write --direct=1 --iodepth=1 --blocksize=1024kb --size=4g --ioengine=windowsaio --filename=自定义盘符名称(不可使用系统分区所在盘符!!) --numjobs=1 -group_reporting  --runtime=180

    执行结果如下:

    图中红框内的BW项为所需硬盘写入测速结果

     

    执行完毕得到测速结果后,windows下无需进行删除操作。

    到这里就是目前为止windows和linux使用fio工具进行硬盘测速的整体步骤了,下面是附加的安装包

    链接:https://pan.baidu.com/s/1P-HQIdYd0tFYtclijJ_QVw
    提取码:6666

    转载本文请和本文作者联系授权,本文来自博客园一袭白衣一                 

  • 相关阅读:
    Python基础-EMS系统
    python基础-数据结构及数据读取操作
    python基础-猜数游戏
    python基础-质数判断及优化
    利用5次shift漏洞破解win7密码
    python基础-水仙花数判断
    pickle,json ;random,shelve
    block母版继承,include模板导入,inclusion_tag自定义模板
    多道技术,阻塞非阻塞,同步异步,udp,tcp,孤儿僵尸进程
    深度广度继承,抽象类接口,绑定方法,@propertry,继承封装接口多态鸭子类型关系,组合
  • 原文地址:https://www.cnblogs.com/LangZiXiYan/p/13802214.html
Copyright © 2011-2022 走看看