1、读/写IO

读IO就是发指令从磁盘读取某段序号连续的扇区内容。指令一般是通知磁盘开始扇区位置,然后给出需要从这个初始扇区往后读取的连续扇区个数,同时给出动作是读还是写。磁盘收到这条指令就会按照指令的要求读或者写数据。控制器发出这种指令加数据并得到对方回执的过程就是一次IO读或IO写。

一个IO所要提取的扇区段一定是连续的,如果想提取或写入两段不连续的扇区段,只能将它们放入两个IO钟分别执行,这也就是为何随机IO对设备的IOPS指标要求较高的原因。

2、大/小块IO

指控制器的指令中给出的连续读取扇区数目的多少。如果数目很大,如128、64等,就应该算是大块IO;如果很小,比如1、4、8等,就应该算是小块IO。大块和小块之间没有明确的界限。

3、连续/随机IO

连续喝随机是指本次IO给出的初始扇区地址和上一次IO的结束扇区地址是不是完全连续的或者相隔不多的。如果是,则本次IO应该算是一个连续IO;如果相差太大,则算一次随机IO。连续IO因为本次初始扇区和上次结束扇区相隔很近,则磁头几乎不用换道或换道时间极短。如果相差太大,则磁头需要很长的换道时间。如果随机IO很多,会导致磁头不停换道,效率大大降低。

4、顺序/并发IO

意思是,磁盘控制器如果可以同时对一个RAID系统中的多块磁盘同时发送IO指令(当然这里的同时是宏观的概念,如果所有磁盘都在一个总线或者环路上,则这里的同时就是指向一块磁盘发送一条指令后不必等待它回应,接着向另一块磁盘发送IO指令),并且这些最底层的IO数据包含了文件系统级下发的多个IO的数据,则为并发IO。如果这些直接发向磁盘的IO只包含了文件系统下发的一个IO的数据,则此时为顺序IO,即控制器缓存中的文件系统下发的IO队列,只能一个一个来。并发IO模式在特定的条件下可以很大程度地提高效率和速度。

5、持续/间断IO

连续不断的发送或者接受IO请求数据流,这种情况为持续IO;IO数据流时断时续则为间断IO。

6、稳定/突发IO

某存储设备或者某程序在一段时间内接收或者发送的IOPS以及Throughput(吞吐量)保持相对稳定和恒定,则称为稳定IO;如果单位时间的IOPS或者Throughtput突然猛增,则为突发IO。

7、实/虚IO

某IO请求中包含对应实际数据地址的,比如磁盘LBA地址,或者文件偏移量,请求读或者写实际文件或者磁盘扇区数据的,称为实IO;而应用程序针对文件元数据操作的(在文件系统层以上没有文件主体数据操作),或者针对磁盘发送的非实体数据IO请求,比如Report LUN、SCSI Sense Request等控制性IO,称为虚IO。

8、IO并发几率

单盘,IO并发几率为0,因为一块磁盘同时只可以进行一次IO。对于RAID0,在2块盘情况下,条带深度比较大的时候(条带太小不能并发IO),并发两个IO的几率为1/2.其他情况请自行运算。

9、IOPS

完成一次IO所用的时间=寻道时间+旋转延迟时间+数据传输时间,IOPS=IO并发系数/(寻道时间+旋转延迟时间+数据传输时间)。由于寻道时间相对于传输时间要大几个数量级所以影响IOPS的关键因素就是降低寻道时间。在连续IO的情况下,寻道时间很短,仅在换磁道时候需要寻道。在这个前提下,传输时间越少,IOPS就越高。

10、每秒IO吞吐量

显然,每秒IO吞吐量=IOPS*平均IO SIZE。IO SIZE越大,IOPS越高,每秒IO吞吐量就越高。设磁头每秒读写数据速度为V,V为定值,则IOPS=IO并发系数/(寻道时间+旋转延迟时间+IO SIZE/V)。带入得每秒IO吞吐量=IO并发系数*IO SIZE*V/(V*寻道时间+V*旋转延迟时间+IO SIZE)。可以看出影响每秒IO吞吐量的最大因素就是IO SIZE和寻道时间以及旋转延迟时间。IO SIZE越大,寻道时间越小,吞吐量越高。相比能显著影响IOPS的因素只有一个,就是寻道时间。

关于几个与IO相关的重要概念的更多相关文章

  1. Innodb Read IO 相关参数源代码解析

    前言:最近在阅读Innodb IO相关部分的源代码.在阅读之前一直有个疑问,show global status 中有两个指标innodb_data_reads 和 innodb_data_read. ...

  2. 与IO相关的等待事件troubleshooting-系列9

    Buffer Cache与IO相关的等待事件: 这种等待事件的产生原因是包含DBWR进程和IO Slaves的Buffer Cache操作. 'db file parallel write' , 'd ...

  3. 文件IO 相关的包:java.io文件——API

    文件IO 相关的包:java.io文件——API 1.Java.io.File类的使用(1)两种路径绝对路径:相对于当前路径:当前为 “工程名”(2)File类创建,对象为一个文件/目录,可能存在或不 ...

  4. IO相关操作

    IO相关操作 对于IO操作而言,有四个基本的操作:open .read .write .close 我们来逐个解释.    在此之前我们先解释一下什么是文件描述符 文件描述符 操作系统通过一个整数开代 ...

  5. Properties -IO相关的双列集合类

    IO相关的集合类 java.util.Properties集合 extends hashtable(淘汰) Properties类表示了一个持久的属性集.Properties可保存流中或从流中加载 P ...

  6. IO相关Demo

    这几天复习了IO相关知识 只为记录,好记性不如烂笔头 有误请指正 ありがとうございます. 我的公众号 作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1.判断存在,存在改名,并延迟删除,不存在新建 ...

  7. 关于golang中IO相关的Buffer类浅析

    io重要的接口 在介绍buffer之前,先来认识两个重要的接口,如下边所示: type Reader interface { Read(p []byte) (n int, err error) } t ...

  8. Java IO相关使用

    date: 2020-06-14 14:42:22 updated: 2020-08-21 17:35:45 Java IO相关使用 1. 文件 创建 File 对象的三种方式 一个路径名:File( ...

  9. Java IO学习笔记:概念与原理

    Java IO学习笔记:概念与原理   一.概念   Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...

随机推荐

  1. BZOJ4571:[SCOI2016]美味(主席树,贪心)

    Description 一家餐厅有 n 道菜,编号 1...n ,大家对第 i 道菜的评价值为 ai(1≤i≤n).有 m 位顾客,第 i 位顾客的期望值为 bi,而他的偏好值为 xi . 因此,第 ...

  2. 解决osx下 ssh: connect to host localhost port 22: Connection refused

    解决办法: 终端下执行:sudo  systmesetup -setremotelogin on

  3. virtualbox+vagrant学习-4-Vagrantfile-5-Machine Settings

    Machine Settings 配置命名空间:config.vm config.vm的设置将修改vagrant管理的机器的配置 Available Settings可用设置 config.vm.ba ...

  4. 使用 git push 出现error setting certificate verify locations问题记录

    昨天重新装了个系统,使用时出现了error setting certificate verify locations. 出现错误仔细看错误提示,这可是解决问题的关键信息. 将错误的信息复制到搜索引擎中 ...

  5. Python读文件报错:SyntaxError: Non-ASCII character in file

    打开city.py文件时报错 问题原因: 程序中的编码错误,python默认是acii模式,没有支持utf8.如果代码中有汉字 ,就会报错 解决方案: 源代码文件(city.py)第一行添加:#cod ...

  6. 1、Orcal下载安装步骤图文详解

    1.Orcal官方下载地址: https://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.htm ...

  7. pytest 失败重跑截图

    1.环境准备 /*@param: 作者:流浪的python Date:2019/01/19 env:python 3.7(由于3.0-3.5以下部分pytest可能有部分兼容问题安装建议2.7-2.9 ...

  8. Javascript中的继承与Prototype

    之前学习js仅仅是把w3school上的基本语法看了一次而已,再后来细看书的时候,书中会出现很多很多没有听过的语法,其中一个就是js的继承以及总能看到的prototype.我主要在看的两本js书是&l ...

  9. beta冲刺后续讨论

    目录 组员:胡绪佩 组员:何家伟 组员:黄鸿杰 组员: 翟丹丹 组员:周政演 组员:胡青元 组员:庄卉 组员:刘恺琳 组员:何宇恒 组员:刘一好 组员:葛家灿 组员:胡绪佩 总结 通过这次的Beta版 ...

  10. Use UMDH to identify memory leak problem

    We sometimes got memory leak problem, and we need to find the leaked memory, Here is a usful tool fr ...