当前位置:网站首页>关于存储IOPS你必须了解的概念
关于存储IOPS你必须了解的概念
2022-08-05 05:15:00 【技福小咖】
在存储领域,IOPS(Input/Output Per Second)也被称为Throughput(吞吐量),即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,I/O请求通常为读或写数据操作请求。
在一秒内,磁盘进行多少次 I/O 读写的次数,由寻道时间、旋转延迟和数据传输时间三部分构成。
寻道时间 Tseek是指将读写磁头移动至正确的磁道上所需要的时间。寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms。
旋转延迟 Trotation是指盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间。旋转延迟取决于磁盘转速,通常使用磁盘旋转一周所需时间的1/2表示。
比如,7200 rpm的磁盘平均旋转延迟大约为60*1000/7200/2 = 4.17ms,而转速为15000 rpm的磁盘其平均旋转延迟约为2ms。
数据传输时间 Ttransfer是指完成传输所请求的数据所需要的时间,它取决于数据传输率,其值等于数据大小除以数据传输率。
IOPS计算公式
IOPS = 1/IO Time = 1/(Seek Time + 60 sec/Rotational Speed/2 + IO Chunk Size/Transfer Rate
7200 rpm的磁盘平均旋转延迟大约为60*1000/7200/2 = 4.17ms,而转速为15000 rpm的磁盘其平均旋转延迟为2ms。
通常磁盘IOPS计算
IOPS = 1000 ms/ (Tseek + Troatation),忽略数据传输时间。
假设磁盘平均物理寻道时间为3ms, 磁盘转速为7200,10K,15K rpm,则磁盘IOPS理论最大值分别为:
IOPS = 1000 / (3 + 60X1000/7200/2) = 140
IOPS = 1000 / (3 + 60000/10000/2) = 167
IOPS = 1000 / (3 + 60000/15000/2) = 200
寻道时间取值
考虑到被读写的数据可能在磁盘的任意一个磁道,既有可能在磁盘的最内圈(寻址时间最短),也可能在磁盘的最外圈(寻址时间最长),所以在计算中我们只考虑平均寻址时间,也就是磁盘参数中标明的那个平均寻址时间。
旋转延时取值
和寻址一样,当磁头定位到磁道之后有可能正好在要读写扇区之上,这时候是不需要额外延时就可以立刻读写到数据,最坏的情况确实要磁盘旋转整整一圈之后磁头才能读取到数据,所以这里我们也考虑的是平均旋转延时。
传输时间取值
磁盘参数提供我们的是最大的传输速度,当然要达到这种速度是很有难度的,但这个速度却是磁盘纯读写磁盘的速度,因此只要给定了单次 IO的大小,我们就知道磁盘需要花费多少时间在数据传送上,这个时间就是IO Chunk Size / Max Transfer Rate。(数据传输率,单位是Mb/s,兆每秒)
更多相关大咖视频课程请在苹果App Store 或各安卓市场下载“技福小咖App”学习。
边栏推荐
- Web Component-处理数据
- 如何编写一个优雅的Shell脚本(一)
- Comparison and summary of Tensorflow2 and Pytorch in terms of basic operations of tensor Tensor
- 【论文阅读-表情捕捉】ExpNet: Landmark-Free, Deep, 3D Facial Expressions
- Calling Matlab configuration in pycharm: No module named 'matlab.engine'; 'matlab' is not a package
- CVPR 2022 | 70% memory savings, 2x faster training
- MaskDistill - Semantic segmentation without labeled data
- [Practice 1] Diabetes Genetic Risk Detection Challenge [IFLYTEK Open Platform]
- AIDL详解
- [Pytorch study notes] 10. How to quickly create your own Dataset dataset object (inherit the Dataset class and override the corresponding method)
猜你喜欢
【22李宏毅机器学习】课程大纲概述
flink on yarn 集群模式启动报错及解决方案汇总
【MySQL】数据库多表链接的查询方式
【数据库和SQL学习笔记】3.数据操纵语言(DML)、SELECT查询初阶用法
[Go through 10] sklearn usage record
Detailed explanation of BroadCast Receiver (broadcast)
SQL(1) - Add, delete, modify and search
ECCV2022 | RU&谷歌提出用CLIP进行zero-shot目标检测!
[Go through 8] Fully Connected Neural Network Video Notes
记我的第一篇CCF-A会议论文|在经历六次被拒之后,我的论文终于中啦,耶!
随机推荐
基于Flink CDC实现实时数据采集(二)-Source接口实现
【Over 15】A week of learning lstm
如何跟踪网络路由链路&检测网络健康状况
flink实例开发-详细使用指南
学习总结week3_3迭代器_模块
神经网络也能像人类利用外围视觉一样观察图像
读论文-Cycle GAN
【数据库和SQL学习笔记】4.SELECT查询2:排序(ORDER BY)、聚合函数、分组查询(GROUP BY)
如何编写一个优雅的Shell脚本(三)
【论文阅读-表情捕捉】ExpNet: Landmark-Free, Deep, 3D Facial Expressions
ES6基础语法
Flink Distributed Cache 分布式缓存
SparkML-初探-文本分类
BroadCast Receiver(广播)详解
【论文精读】ROC和PR曲线的关系(The relationship between Precision-Recall and ROC curves)
如何编写一个优雅的Shell脚本(二)
Tensorflow steps on the pit notes and records various errors and solutions
CVPR 2020 - 频谱正则化
Flink和Spark中文乱码问题
You should write like this