FIO磁盘性能测试工具

这篇具有很好参考价值的文章主要介绍了FIO磁盘性能测试工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

一般我们测试硬盘或者存储的性能的时候,会用Linux系统自带的dd命令,因为是自带命令,简单易使用,因此一些客户喜欢使用dd命令来测试磁盘的读写性能。

但是用dd命令来测试性能,有如下问题:

\1. dd命令的IO模型单一,只能测试顺序IO,不能测试随机IO。

\2. dd命令可设置的参数较少,并且测试结果不一定能反映出磁盘的真实性能。

\3. dd命令的设计初衷就不是用例测试性能的,在dd的手册中可以看到。

\4. 无法设置队列深度,因此不推荐用dd命令来测试最大读IOPS。

因此,我们要使用更专业的磁盘性能测试工具来测试,目前主流的第三方IO测试工具有fio、iometer和Orion。

iometer 是Windows下使用方便,Orion是Oracle的IO测试软件,而FIO是我们比较常用的在Linux系统下(当然在Windows下安装cygwin也可以运行FIO)的IO系统Benchmark和压力测试工具,可以模拟不同IO场景下的IO负载。

FIO支持 13种不同的 I/O 引擎, 包括:sync,mmaplibaio, posixaio, SG v3, splice, null, network,syslet,guasi,solarisaio 等等。

根据实际业务的场景,一般将 I/O 的表现分为四种场景,随机读、随机写、顺序读、顺序写。FIO 工具允许指定具体的应用模式,配合多线程对磁盘进行不同深度的测试。

安装

FIO默认已经存在于yum仓库里,所以我们yum安装即可

yum install -y libaio-devel
yum install -y fio-3.7-2.el7.x86_64

运行格式

fio [options] [job options] <job file(s)>

工作原理

使用 FIO 工具测试硬盘性能,首先确定待模拟IO负载的IO参数,如I/O type,Block size,I/O engine,I/O depth,Target file/device等

然后需要编写一个作业(命令行或者脚本job file)来预定义 FIO 将要以什么样的模式来执行任务。

作业中可以包含任意数量的线程或文件,一个作业的典型模式是定义一部分的全局共享参数global 段和一个(或多个)作业的job 段实体对象(即硬盘)。

运行 FIO 作业时,FIO 会自上而下解析作业中的配置,并做相应的调整去执行任务。

测试完成后,输出测试结果,对FIO测试结果进行分析,评估IO系统的设计或优化方案或确定debug思路。

FIO 中的常用选项如下 filename: 支持文件系统或者裸设备(硬盘或分区),-filename=/dev/sda2 或 -filename=/tmp/fio_read_test.txt 或 -filename=/dev/sda direct: 1表示测试过程绕过机器自带的buffer,相当于o_direct,0表示使用bufferio runtime:测试时长,单位秒,如果不写则直接写5GB文件 time_based: 如果在runtime指定的时间还没到时文件就被读写完成,将继续重复直到runtime时间结束,加上这个参数防止job提前结束。 size: 向硬盘中写入/读取测试文件的大小,可以是绝对值MB,KB,GB,也可以是百分比,占所测磁盘的百分比%, group_reporting:汇总所有的信息,而不是每个job都显示具体的结果 thread:fio默认会使用fork()创建job进程,如果这个选项设置的话,fio将使用pthread_create来创建线程 numjobs:创建的线程或进程数量,建议等于 CPU 的 core 值,,如果要测试吞吐量,那么numjobs要设置小一点 rw: 读写方式,顺序读read,顺序写write,随机读randread ,随机写randwrite,混合读写randrw,如果要测试吞吐量,需要设为顺序读read,顺序写write rwmixread:70,混合读写7:3 ,配合rw = randrw rwmixwrite:30 在混合读写的模式下7:3 bs: 单次io的块大小,一般测试4k, 8k, 64k, 128k, 1M bsrange: =512-2048 同上,提定数据块的大小范围 allow_mounted_write:允许虚拟机写入 ioengine:FIO 工作时使用的引擎。引擎决定了使用什么样的 I/O,同步模式、异步模式,如果要使用libaio引擎,需要yum install -y libaio-devel包,要使用异步模式引擎才能设置iodepth iodepth:I/O 引擎如果使用异步模式,要保持多少的队列深度,没有设置则使用操作系统默认队列深度,如果要测试吞吐量,那么iod文章来源地址https://www.toymoban.com/news/detail-771289.html

到了这里,关于FIO磁盘性能测试工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ​Linux开源存储漫谈(2)IO性能测试利器fio

    fio(Flexible I/O Tester)正是非常常用的文件系统和磁盘 I/O 性能基准测试工具。提供了大量的可定制化选项,可以用来测试,裸盘、一个单独的分区或者文件系统在各种场景下的 I/O 性能,包括了不同块大小、不同 I/O 引擎以及是否使用缓存等场景。   ubuntu安装fio非常简单 fio选

    2024年02月04日
    浏览(41)
  • fio性能测试-环境搭建,功能介绍,测试讲解

    fio性能测试-环境搭建,功能介绍,测试讲解 Fio介绍:FIO(Flexible I/O Tester)是一个用于测试磁盘、文件系统、块设备和网络设备性能的工具。它可以模拟不同类型的I/O负载,包括随机或顺序读写、混合读写、随机或顺序访问等。FIO提供了丰富的选项和参数,可以对测试进行高

    2023年04月13日
    浏览(37)
  • Fio工具详解【强大的IO性能压测工具】

    [time] runtime=time ​ 告诉fio在指定的时间段后终止处理。很难确定指定作业将运行多长时间,因此此参数可以方便的将总运行时间限制为给定时间。当省略单位时间,该数值以秒为单位进行解释。 time_based ​ 如果设置,即使文件被完全读取或写入,fio也将在指定的运行期间运行

    2024年02月01日
    浏览(37)
  • Linux下Python脚本的编写解析fio测试log(四)

    在我们平常的测试盘的过程中,fio是一款业界最为通用的工具,通过Fio可以只知道一个盘具体的带宽,iops,延迟等等.比如下面这段fio的log 这里边需要拿出log里的一些参数 做成表格 如下: 下面说下如何用Python解析log并做成表格 1 同样是用到Python中文件函数open,调用四个模块sy

    2024年02月08日
    浏览(44)
  • fio工具及使用

    在实际测试中需要对硬盘有较为完整的测试,之前一直使用IOzone,但发现测试结果并不能完全反映出硬盘的整体性能,所以开始使用fio进行测试,fio测试参数过多,现写出我实际中使用的参数,文末附有在其他论坛查看到的较为完整的fio参数解读 FIO是一个非常简单好用的性能

    2024年02月05日
    浏览(46)
  • Linux性能测试工具

    在Linux Benchmark Suite Homepage网站上列举了诸多Linux性能测试工具,包括CPU/RAM/ROM/Cache/net等性能测试。 测试工具 这个工具集中包含以下几种测试工具,我们主要使用到bw_mem工具进行Memory read和write测试。 Bandwidth benchmarks(带宽测试) Cached file read Memory copy (bcopy) Memory read Memory write Pi

    2023年04月08日
    浏览(52)
  • Linux之网络性能测试工具netperf实践

      Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送

    2024年02月01日
    浏览(36)
  • Linux环境安装iperf3(网络性能测试工具)

    iperf官网地址: iPerf - The TCP, UDP and SCTP network bandwidth measurement tool   iperf特性: 测量带宽 报告MSS/MTU大小和观察到的读数大小。 通过套接字缓冲区支持TCP窗口大小。 UDP 客户端可以创建指定带宽的UDP流。 测量数据包丢失 测量延迟抖动 支持多播 跨平台:Windows、Linux、Android、

    2024年02月03日
    浏览(42)
  • FIO 安装方法

            yum安装,不同版本的OS会根据仓库里的fio版本来安装         使用异步模式,需要下载libaio         查看fio版本 2.1、进入官网: fio tools 2.2、上传至Linux中,也可以使用wget命令来下载 2.3、安装编译环境gcc 2.4、下载后进行解压,在指定目录安装 注:--prefix   

    2024年02月08日
    浏览(36)
  • 【工具/性能】开源的性能测试工具sysbench

    sysbensh是一个非常通用的benchmark工具,其提供多种方面的测试: cpu :提供一个简单的cpu benchmark测试 fileio:文件磁盘io的benchmark测试 memory:内存访问 benchmark测试 thread:线程调度 benchmark测试 mutex:POSIX的锁 benchmark测试 OLTP:数据库 benchmark测试,支持MySQL,Pgsql 默认支持MySQL,如

    2024年02月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包