目录

  • 一、简介
  • 二、源码下载及参数解析
    • 2.1 源码下载方式
    • 2.2 参数解析
    • 2.3 测试实例
  • 三、其他相关链接
    • [3.1 Linux下stream内存带宽测试总结附源码](https://blog.csdn.net/Luckiers/article/details/125586134)
    • [3.2 Linux下区分磁盘(HDD)和固态硬盘(SSD)](https://blog.csdn.net/Luckiers/article/details/125587275)

一、简介

本文主要介绍FIO的具体参数、源码下载及通过实例进行FIO硬盘性能测试,FIO是Linux下开源的一款IOPS测试工具,主要用来对磁盘进行压力测试和性能验证。
它可以产生许多线程或进程来执行用户特定类型的I/O操作,通过编写作业文件(类似于k8s的yaml)或者直接命令去执行测试动作,相当于是一个多线程的io生成工具,用于生成多种IO模式来测试硬盘设备的性能(大多情况用于测试裸盘性能)。

二、源码下载及参数解析

2.1 源码下载方式

1、git直接下载

https://github.com/axboe/fio.git
[root@localhost /]# wget https://github.com/axboe/fio/archive/refs/tags/fio-3.10.zip
[root@localhost /]# cd /root/fio-fio-3.10
[root@localhost /]# ./configure
[root@localhost /]# make && make install

2、部分系统源中已有fio包

[root@localhost /]# apt-get install fio -y  //直接下载

2.2 参数解析

参数 解析
-name 用于输出信息用的名字,在上述命令行的使用方法中,表明一个新job的开始,缺省为job name
-filename 测试文件名称,通常选择需要测试的盘的data目录
-group_reporting 汇总所有的信息,而不是每个job都显示具体的结果
-iodepth 本次测试的队列深度
-ioengine 负载产生的引擎,定义job向文件发起io的方式。Fio的引擎有很多,具体可以网上搜一下,常用的引擎为libaio 和
-volume 和 -brick 这两个是测试挂载点用的,其他场景不需要。
-nrfiles 每个进程生成的文件数量
-rw 读写方式,顺序读,顺序写,随机读,随机写,混合读写
-bs 块大小,一般测试4k, 8k, 64k, 128k, 1M
-size 测试文件的大小
-threads fio默认会使用fork()创建job,如果这个选项设置的话,fio将使用pthread_create来创建线程
-numjobs 创建的线程数量
-direct 测试过程绕过机器自带的buffer或cache,相当于o_direct其他一些相对高级点用法的参数,比如:-runtime测试时长
-bssplit=4k/40:64k/30:1M/30 混合块大小,4k:64k:1M = 4:3:3
bsrange=512-2048 块大小的范围,同bs参数
-rw=randrw, -rwmixread=70 混合读写7:3

FIO测试前注意事项:
1、测试环境配置

yum -y install libaio-devel      //安装libaio引擎,不然执行fio会报“fio: engine libaio not loadable”,必须要在fio安装前安装,不然还要重新编译安装一遍fio

2、写测试时注意是操作裸盘还是有数据的盘,因为写操作会将硬盘已有数据格式化掉,如果要测已经分区、并创建文件系统,且已写入数据的磁盘上进行性能测试,请注意filename选择指定文件,以避免覆盖文件系统和原有数据。

2.3 测试实例

读性能测试

fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=1000 -group_reporting -name=yaoxu-sda
//测试sda的裸盘性能,-direct=1绕过机器的cache,队列深度为1,块大小为16k,测试文件的 大小为20G,创建30个线程,测试时长为1000s

测试结果:

写性能测试

fio -filename=/dev/sda -direct=1 -iodepth 256 -thread=1 -rw=write -ioengine=libaio -bs=128k -size=5G -numjobs=4 -runtime=60  -group_reporting -name=eric-test

测试结果:

三、其他相关链接

3.1 Linux下stream内存带宽测试总结附源码

3.2 Linux下区分磁盘(HDD)和固态硬盘(SSD)

FIO测试硬盘性能参数和实例详细总结(附源码)相关推荐

  1. Linux下stream内存带宽测试参数和示例详解附源码(总结)

    目录 一.简介 二.使用简介 2.1 测试内容简介 2.2 编译参数简介 2.3 具体参数示例 三.源码下载及使用 四.其他相关知识链接 FIO测试硬盘性能参数和实例总结 一.简介 本文通过实例详细讲 ...

  2. 微信小程序UI自动化实践:python+minium+PO模式(超详细教程附源码供下载)

    文章目录 前言 一.minium介绍 二.安装环境 1. 安装minium doc 2. 安装minium 3. 启动小程序 三.准备知识 1. 启动 2. 配置 3. 命令行运行 4. 元素定位 5 ...

  3. php拼音模糊查询,PHP模糊查询技术实例分析【附源码下载】

    本文实例讲述了PHP模糊查询技术.分享给大家供大家参考,具体如下: 简介 从本质上揭密PHP模糊查询技术 功能 根据输入的关键字查找相关用户 PHP用户查询器案例分析 课程目标 掌握PHP模糊技术的应 ...

  4. 超详细!附源码!SpringBoot+shiro+mybatis+Thymeleaf实现权限登录系统

    最近在做一个期末作品,就是使用ssm+thymeleaf+vue+shiro完成一个具有权限登录,且能实现用户信息增删查改的这么一个项目,下面仅仅是实现权限认证和登录.为什么我选shiro,而不选sp ...

  5. 2020最新款影视小程序后端+前端搭建详细教程附源码

    准备工作 教程很详细一步步操作都可以上线,教程都是亲自发布的,希望各位要搬运的时候备注来自哪里 购买云服务器:教程等待更新 购买域名+配置ssl证书:教程待更新 常见问题: 问:域名需要备案吗? 回: ...

  6. Android列表收缩与展开仿QQ好友列表(非常详细,附源码)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka ExpandableListView是一个垂直滚动显示两级列表项的视图,与ListView不同 ...

  7. 基于matlab介绍传感器融合和跟踪工具箱中用于评估跟踪器性能的不同定量分析工具(附源码)

    目录 一.分配和错误指标 1.1 轨道和真相定义 1.2 计算和分析指标 1.3 分析分配指标 ​编辑 1.4 分析错误指标 ​编辑二.将指标汇总为分数 2.1 欧斯帕公制 2.2 分析 OSPA 指 ...

  8. Android串口通信实例分析【附源码】

    Android 串口通信实例分析,用的时开源的android-serialport-api 这个是用android ndk实现的串口通信,我把他做了一个简化,适合于一般的程序的串口通信移植,欢迎拍砖- ...

  9. android仿qq折叠,android列表收缩与展开仿QQ好友列表(非常详细,附源码)

    好友QQ列表,可以展开,可以收起,在android中,以往用的比较多的是listview,虽然可以实现列表的展示,但在某些情况下,我们还是希望用到可以分组并实现收缩的列表,那就要用到android的E ...

最新文章

  1. ABAP--如何快速从BSEG读取数据
  2. AAAI 2020 开源论文 | 一种针对图嵌入模型的受限黑盒对抗攻击框架
  3. 数据结构(一)--稀疏数组
  4. jedis使用_Mybatis的二级缓存、使用Redis做二级缓存
  5. r语言 分类变量 虚拟变量_R语言中的变量
  6. wince对中文字体的支持
  7. 一个关于Remoting的简单例子
  8. django 按天水平分表并插入数据
  9. hadoop--windows环境配置hadoop-3.2.2
  10. 引导linux的工具下载,多系统引导工具(BootThink)下载_多系统引导工具(BootThink)官方下载-太平洋下载中心...
  11. linux面试题与参考答案(转)
  12. linux硬盘检测工具,linux 系统下磁盘检测工具e2fsck的使用
  13. SharedPreferences的使用,android
  14. 在controller类的每个方法执行前调用某个方法_springboot:异步调用@Async
  15. matlab getdata 仿照一个曲线 提取图像中的曲线数据
  16. java写qq机器人插件_情迁QQ机器人JS插件/使用开发教程
  17. arcgis 只能查看指定行政区域_[教程】Arcgis进阶:统计分析
  18. 拉卡拉服务器响应超时,拉卡拉传统POS机11个常见问题及解决方法
  19. Java集合的subList方法分析
  20. DGV:人类基因组结构变异数据库

热门文章

  1. 同华_美hame mpr-a2硬件刷openwrt固件添加usb-serial功能编译
  2. 【操作系统基础】系统接口与系统调用
  3. HTML--超链接--a标签-跳转
  4. 意式极简轻奢风格装修
  5. 基于VC6.0用MFC编写简易计算器
  6. MATLAB:调用自己写的函数
  7. 优学院只阅读不提供下载的文档下载
  8. vscode的代码一片白问题
  9. python:pickle作用
  10. 推荐10部最惊悚的恐怖片,敢挑战看完的评论区留言