FIO的基本概念

2023-11-13


        对于FIO,其是一个10测试工具,可以运行在多种操作系统上,用来测试本地磁盘、
网络存储等的性能。FIO有以下基本概念,大家可以先了解一下:

1、基本概念

        I/O类型-顺序读、顺序写、随机读、随机写


        块大小-读写时规定的block size,一般为512B、4K、16K


        I/O size-一次读写多大的数据,即每次io请求要读写多少数据,一般是1K/4K...
1M/4M等大小。


        I/O引擎(I/O engine)-使用1/O引擎就是使用某些函数,以某些特定方式来访问存
储,不同的1/O引擎有不同的使用场景。比如Linux 可以使用 libaio,sync,psync等


        I/O 深度(1/O depth)-一次提交要提交多少个1/O请求,仅对异步1/0引擎有用,
因为同步1/O总是会等待提交的1/O请求返回了再提交下一个1/O请求,所以iodepth
总是1.


对于I/Odepth,并不是越大越好,需要选择一个合适的值,其原因如下:


        随着iodepth的增大在一定范围内,带宽、io延时会增加,超过一定范围后带宽增
加缓慢,延时继续会增加。延时增加的原因是因为随着 iodepth增加都需花更多的时间
等待请求io数量达到iodepth数值后,才会真正把io请求发送给存储,所以平均每一
个io的延时都会增大了


        带宽之所以会提高可能主要与网络延时有关,如果每次只发一个io请求,那么完
成这一次io请求的时间=收发延时+io请求执行时间,如果没有延时则每秒客户端
可以完成1000次请求,但是加上收发延时后,每秒的请求次数必然减少。但是如果将
每次io 请求数量增加,比如一次发10个请求,那么这10次请求时间花费=等待10
个io请求+1次收发延时+10次io请求执行时间,而10次单个的io请求时间=10
次收发延时+10次io请求执行时间。如果等待10个io请求时间低于9次收发延时,
那么每秒能够完成的io请求时间就会增加,也就会增加带宽


        线程/进程-测试任务中要开启多少个进程/线程


2、SSD测试


        对于SSD,测试时其主要的参数选择如下所示:


        对于顺序读写,block一般选择128K;对于随机读写,block一般选择4K;对于SSD,
其写单位是page,大小是4KB,而擦除单位是block,大小为512K;


        SSD 在测试之前一般要进行预处理。若需要顺序读写测试,则需要先进行2 遍顺序读
写;若为随机读写,则需要进行顺寻读写1遍+随机读写1遍;


        对于队列深度,一般选择16-32,这是绝大多数存储厂商的均数。当队列深度太浅时,
无法饱满测试性能,当队列深度太深时,则带宽比较饱满;


        对于job(线程)和work(进程),对于顺序读写时,两者都选择为1;对于随机读写
时,一般时job=1 work=12 或者 job=12 work=1;

参考链接:
        https://blog.csdn.net/MrSate/article/details/53292102
        https://blog.csdn.net/kunkliu/article/details/101019585
        https://www.cnblogs.com/morgan363/p/12192159.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FIO的基本概念 的相关文章

  • 推荐用于小型站点的 IRC 服务器 (ircd)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 情况 我想使用 IRC 机器人作为我正在研究的其他代码的通用通信接口 服务器硬件陈旧且内存不足 但运行在相对最新的 Debian GNU
  • 找出 Linux 上的默认语言

    有没有办法从C语言中找出Linux系统的默认语言 有 POSIX API 可以实现这个功能吗 例如 我想要一个人类可读格式的字符串 即德语系统上的 German 或 Deutsch 法语系统上的 French 或 Francais 等 有类
  • 用于编辑 /etc/sudoers 文件的正则表达式模式

    我想删除 etc sudoers 文件中的 uncommnet 轮组 那么我应该使用什么正则表达式模式 cat etc sudoers Allows members of the sys group to run networking so
  • 错误:命令“c++”失败,退出状态为 1

    所以我尝试按照以下说明安装 Pyv8https andrewwilkinson wordpress com 2012 01 23 integrating python and javascript with pyv8 https andre
  • 在 Docker 容器中以主机用户身份运行

    在我的团队中 我们在进行开发时使用 Docker 容器在本地运行我们的网站应用程序 假设我正在开发 Flask 应用程序app py具有依赖关系requirements txt 工作流程大致如下 I am robin and I am in
  • 无需 root 访问权限即可安装 zsh? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有可能 以及如何 我确实需要在几台具有 ssh 访问权限 但没有 root 访问权限 的远程计算机上使用此功能 下载 zsh wget O zsh t
  • 运行此处编译的 C 程序会导致在另一台服务器上找不到 GLIBC 库错误 - 是我的错还是他们的错?

    此处编译的 C 程序在我们的 Ubuntu 服务器上运行良好 但是当其他人尝试在他们的特定 Linux 服务器上运行它时 他们会收到以下错误 myprog install lib tls libc so 6 version GLIBC 2
  • Python将文件从Linux复制到WIndows

    我正在构建一个网站 该网站有一个表单 可以捕获用户数据并在用户数据上运行一些cgi cgi 的第一步是需要将文件从 Linux Web 服务器复制到 Windows 计算机 服务器将使用 Active Directory 角色帐户作为复制凭
  • 裸机交叉编译器输入

    裸机交叉编译器的输入限制是什么 比如它不编译带有指针或 malloc 的程序 或者任何需要比底层硬件更多的东西 以及如何才能找到这些限制 我还想问 我为目标 mips 构建了一个交叉编译器 我需要使用这个交叉编译器创建一个 mips 可执行
  • 在 Linux 控制台中返回一行?

    我知道我可以返回该行并用以下内容覆盖其内容 r 现在我怎样才能进入上一行来改变它呢 或者有没有办法打印到控制台窗口中的特定光标位置 我的目标是使用 PHP 创建一些自刷新的多行控制台应用程序 Use ANSI 转义码 http en wik
  • 比较linux中的两个未排序列表,列出第二个文件中的唯一项

    我有 2 个包含号码列表 电话号码 的文件 我正在寻找一种列出第二个文件中第一个文件中不存在的数字的方法 我尝试过各种方法 comm getting some weird sorting errors fgrep v x f second
  • 如何在特定的Java版本上运行应用程序?

    如何运行具有特定 Java 版本的应用程序 我安装了三个 Java 版本 myuser mysystem sudo update alternatives config java There are 3 choices for the al
  • 如何使用 go1.6.2 构建 linux 32 位

    有没有任何组合GOARCH and GOOS我可以设置哪些值来构建 ELF 32 位二进制文 件 GOOS linux and GOARCH 386 更多示例 架构 32 bit gt GOARCH 386 64 bit gt GOARCH
  • 为什么 call_usermodehelper 大多数时候都会失败?

    从内核模块中 我尝试使用 call usermodehelper 函数来执行可执行文件 sha1 该可执行文件将文件作为参数并将文件的 SHA1 哈希和写入另一个文件 名为输出 可执行文件完美运行 int result 1 name hom
  • 在用户程序中使用 或在驱动程序模块代码中使用 ...这有关系吗?

    我正在开发一个设备驱动程序模块和关联的用户库来处理ioctl 来电 该库获取相关信息并将其放入一个结构中 该结构被传递到驱动程序模块中并在那里解压 然后进行处理 我省略了很多步骤 但这就是总体思路 一些数据通过结构体传递ioctl is u
  • 查找并删除超过 x 天的文件或文件夹

    我想删除超过 7 天的文件和文件夹 所以我尝试了 17 07 14 email protected cdn cgi l email protection find tmp mindepth 1 maxdepth 1 ctime 7 exec
  • 从哪里获取 iostream.h

    我正在尝试在 Linux 中做一些事情 但它抱怨找不到 iostream h 我需要安装什么才能获取此文件 这个标准头的正确名称是iostream没有扩展名 如果您的编译器仍然找不到它 请尝试以下操作 find usr include na
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 如何在 Linux 中向热敏打印机发送 ESC/POS 命令

    我正在尝试在热敏打印机上发送 ESC POS 命令 但每当我发送它们时 热敏打印机都会将它们打印为文本 而不是作为命令执行它们 我在 prn 文件中编写这些命令 每当我执行 lp 命令来打印文件时 这些 prn 文件也会被打印 但作为文本
  • 如何将命令输出作为多个参数传递给另一个命令

    我想将命令的每个输出作为多个参数传递给第二个命令 例如 grep pattern input returns file1 file2 file3 我想复制这些输出 例如 cp file1 file1 bac cp file2 file2 b

随机推荐

  • Ciclop开源3D扫描仪软件---Horus源码分析之src\horus\engine\calibration\calibration.py

    coding utf 8 This file is part of the Horus Project author Jes煤s Arroyo Torrens
  • java定时器,每天00:00执行任务

    import java text SimpleDateFormat import java util Calendar import java util Timer import java util TimerTask public cla
  • 多分类 & 多标签 准确度计算

    多标签 V S 多分类 多类分类 Multiclass classification 表示分类任务中有多个类别 比如对一堆水果图片分类 它们可能是橘子 苹果 梨等 多类分类是假设每个样本都被设置了一个且仅有一个标签 一个水果可以是苹果或者梨
  • ubuntu16.04-cuda11.1上使用TensorRT加速yolov5推理

    基础 环境 其实极客的版本已经给我们了 ubuntu16 04 cuda11 1 cudnn8 0 opencv4 1 1 tensorrt7 2 检查 ubantu版本 lsb release a 检查cuda版本 nvcc versio
  • weex 一个传说级巨坑-- 2018最新版weex踩坑指南(weex navigator 多界面跳转)

    先说结论 本人极度非常 不推荐weex作为任何商用开发 有很多人会说了 你瞎扯 你看别人阿里 啊飞猪 啊那个支付宝 人家不是用得好好的么 当然这也是我们公司作为技术选型的考量 三端通用 阿里系的app全线在用 理论上是可以实现的 而且我们在
  • find / -name file 权限不足

    find name file 权限不足 1描述如下 原因 解决方案 结果 在查找系统文件中 查找到 roor user 1000 gvfs目录时提示权限不够 1描述如下 find name test01 txt home kali test
  • 总结12个python代码

    python有很好的可读性和简洁性 学会其中的小的技巧 运用的恰当 会让我们的工作事半功倍 以下是我总结的12个小的程序段 看似非常的简单 但是却非常的有技巧性 并且对个人的编程能力是一个很好的检验 大家应该在日常的编程中多多使用 多多练习
  • 【精华】安卓开发学习路线规划

    近一段时间经常被朋友问到如何从零开始学习安卓 成为一名安卓开发工程师 不得不感叹 现在各行各业都有不少人在涌向IT 互联网行业 希望从事程序开发工作 竞争越来越激烈了 借此机会 我梳理了一下自己所学所知的安卓知识 制定了这份安卓开发学习路线
  • c语言中swap表示什么意思,swap是什么意思_单片机里的SWAP A是什么意思啊?

    Swap是什么意思 Swap是一种金融衍生品 指交易双方约定在未来某一期限相互交换各自持有的资产或现金流的交易形式 外汇里的 swap 是什么意思 外汇里swap专业说法是掉期 通俗的说法就是隔夜利息 指的是你炒外汇使用的杠杆部分的资金你应
  • leetCode Q3:Longest Substring Without Repeating Characters(java)

    1 题目链接 https leetcode com problems longest substring without repeating characters description 2 题目内容 中文版 给一个字符串 要求返回最长的不
  • 详解用户画像

    01画像简介 用户画像 即用户信息标签化 通过收集用户的社会属性 消费习惯 偏好特征等各个维度的数据 进而对用户或者产品特征属性进行刻画 并对这些特征进行分析 统计 挖掘潜在价值信息 从而抽象出用户的信息全貌 如图1 1所示 用户画像可看作
  • 史上最全C/C++面试八股文,一文带你彻底搞懂C/C++面试!

    前述 本文初衷是为了总结本人在各大平台看到的面经 我会在本文持续更新我所遇到的一些C 面试问题 如有错误请一定指正我 目录 1 讲一讲封装 继承 多态是什么 2 多态的实现原理 实现方式 是什么 以及多态的优点 特点 3 final关键字的
  • PHP实现微信公众号主动推送消息

    这篇文章主要介绍了php实现微信公众号主动推送消息的方法 PHP版微信公共平台消息主动推送 突破订阅号一天只能发送一条信息限制 需要的朋友可以参考下 通过学习借鉴朋友的实现方法进行整理 实现了PHP版的微信公共平台消息主动推送 分享给大家供
  • Kafka的数据消费过程以及消息不丢失机制

    文章目录 Kafka数据写入流程 Kafka数据消费流程 消息不丢失机制 broker数据不丢失 生产者数据不丢失 消费者数据不丢失 Kafka数据写入流程 执行流程 生产者获取对应分区的 leader 位置 发数据给leader brok
  • 区别VAN与GAN,LSGAN、WGAN、WGAN-GP、CGAN

    训练 稳定 样本的 多样性 和 清晰度 似乎是GAN的 3大指标 David 9 VAE与GAN 聊到随机样本生成 不得不提VAE与GAN VAE用KL divergence和encoder decoder的方式逼近真实分布 但这些年GAN
  • String、StringBuffer、StringBuilder的区别——(面试题)

    String StringBuffer StringBuilder的区别 String StringBuffer StringBuilder 执行速度 最差 其次 最高 线程安全 线程安全 线程安全 线程不安全 使用场景 少量字符串操作 多
  • Go开发工具

    http studygolang com articles 1678 1 4 Go开发工具 本节我将介绍几个开发工具 它们都具有自动化提示 自动化fmt功能 因为它们都是跨平台的 所以安装步骤之类的都是通用的 LiteIDE LiteIDE
  • 【ML on Kubernetes】第 3 章:探索 Kubernetes

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • SCPI 语言简介

    电子负载中需要用到 所以记录下 来源是德科技 SCPI 可编程仪器的标准命令 是一种基于 ASCII 的仪器编程语言 供测试和测量仪器使用 SCPI 命令采用分层结构 也称为树系统 相关命令归组于共用结点或根 这样就形成了子系统 下面一部分
  • FIO的基本概念

    对于FIO 其是一个10测试工具 可以运行在多种操作系统上 用来测试本地磁盘 网络存储等的性能 FIO有以下基本概念 大家可以先了解一下 1 基本概念 I O类型 顺序读 顺序写 随机读 随机写 块大小 读写时规定的block size 一