关于IO的一些概念

以下内容来自《大话存储》

IO可以分为读/写IO、大/小块IO、连续/随机IO、顺序/并发IO、稳定/突发IO、持续/间断IO和虚实IO

【连续/随机IO】连续和随机是指本次IO给出的初始扇区和上一次IO的结束扇区是不是完全连续的或者相隔不多。如果是,则本次IO为连续IO;如果相差太大则为随机IO。

【顺序/并发IO】宏观上的概念是指磁盘控制器同时对一个RAID系统中的多块磁盘同时发送IO指令,这里的同时是指向一块磁盘发送一条指令后不必等待它回应,接着向另一块磁盘发送IO指令,并且最底层的IO数据包含了文件系统下发的多个IO的数据,则为并发IO
如果这些直接发向磁盘的IO只包含了文件系统下发的一个IO的数据,则此时为顺序IO,则控制器缓存中的文件系统下发的IO队列,只能一个一个来。

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

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

文件系统的IO包括同步IO、异步IO、阻塞/非阻塞IO和Direct IO

【同步IO】程序的某一个进程或线程,如果某时刻调用了同步IO接口,则IO请求发出后,这个进程或线程必须等待IO路径上的下位程序返回信号,不继续执行后面的代码,被操作系统挂起,操作系统继续执行其他的进程或者线程

【异步IO】操作系统会继续执行本线程或进程中后续的代码,直到时间片到时或者因其他原因被挂起。

【Direct IO】有些应用程序,eg.数据库程序,有自己的缓存,IO再发出之前已经经过自己的缓存算法优化过了,如果请求IO到达文件系统之后,又被缓存起来进行额外的优化,就是多此一举了。因此文件系统提供了另外一种接口,即Direct IO接口,其IO请求、数据请求以及回送的数据都不被文件系统缓存,而是直接进入应用程序的缓存。

IO的性能指标

【IOPS】每秒能进行多少次IO
【传输带宽】磁盘或设备再传输数据的时候数据流的速度

具有高带宽规格的硬盘在传输大块连续数据时具有优势
具有高IOPS的硬盘在传输小块不连续的数据时具有优势

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值