看了篇文章,突然想写点磁盘IO的东西,也算是对磁盘的一点点总结。

以下以理论为主,辅助结合实际情况。不明白这句话的出去。

今年是2018年,目前市场上早已经没有国产的硬盘,以前的长城、易拓早早的被拍死在沙滩上,话说硬盘的制造难度仅次于CPU。现在好多厂商也被不断的兼并收购也是因为垂直磁记录这道题太难了,不会做。

下面上图看看磁盘技术

现在市面上的磁盘安装转速来说有5400、7200、10000、15000转/分,这里只讨论3.5英寸的硬盘。

IOPS和带宽是硬盘的主要参数之一,那这些硬盘的IOPS和带宽都是多少呢?我们不考虑实际情况的计算一下:

IOPS(IO per second)是硬盘最重要的参数之一,存储系统一直在优化的一个参数。那么不同的硬盘IOPS是多少?怎么计算呢?

先写结果

 RPM的硬盘IOPS=
RPM的硬盘IOPS=80
RPM的硬盘IOPS=147
RPM的硬盘IOPS=199
*以上数据为理论计算值,理论很丰满,现实很骨感。

如何计算的呢?我们以10000 RPM的硬盘为例进行说明

磁盘在接收到一个IO请求的时候需要3步来完成:

1.将磁头转到相应的磁道=寻址时间

  我们没有计算寻址时间的方法,只有原厂商提供的数据,HGST的HUC101890CS420x提供了Seek time约为3.8ms

2.等待相应的扇区转到磁头下方开始读取=潜伏时间latency time。

  最好的情况是磁头转到相应的磁道,扇区正好在转到磁头下方,此时旋转延时最小为0ms

  最差的情况是磁头转到相应的磁道,扇区刚转过磁头下方,此时旋转延时最大,为60000ms/10000转=6ms

  两者取平均值为3ms

3.数据传送时间

  1个4k的文件所需的数据传输时间=4K / 数据传输率

  我们参考原厂商的HUC101890CS420x硬盘的数据传输率Sustained transfer rate (MB/s, typical)为146 to 247,在这里我们取200MB/s

  则得出4k文件的传输时间=4k / 200MB/s=0.02ms

经过3步之后,数据就真正的写在了硬盘上,那所花费的时间=3.8ms+3ms+0.02ms=6.82ms

硬盘操作一个IO需要6.82ms,那么1s的时间能够操作的IO=1s/6.82ms=146.7次,所以我们10000RPM的硬盘IOPS即为147

同理可得以下计算过程:

7200转硬盘我选取HUS726TxTAL42yz,此硬盘寻址时间seek time为8.3ms
数据传输率为up to 233,按照200MB/s算吧
IOPS=1s / [ 8.3ms+(60000/7200/2)ms+0.02ms ]=1s / 12.49ms = 80

15000转的硬盘我选取HUC156060CS420x,此硬盘的寻址时间seek time为3ms
数据传输率为189-271,按照200MB/s算吧
IOPS=1s / [ 3ms+(60000/15000/2)ms+0.02ms ]=1s / 5.02ms = 199

  

*本文中硬盘HUC101890CS420x的参考数据来源:http://www.hgst.com/sites/default/files/resources/USC10K1800_ds.pdf

磁盘IO计算的更多相关文章

  1. 磁盘IO

    基本概念: 在数据库优化和存储规划过程中,总会提到IO的一些重要概念,在这里就详细记录一下,个人认为对这个概念的熟悉程度也决定了对数据库与存储优化的理解程度,以下这些概念并非权威文档,权威程度肯定就不 ...

  2. 【好书摘要】性能优化中CPU、内存、磁盘IO、网络性能的依赖

    系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上 ...

  3. linux查看磁盘io的几种方法

    怎样才能快速的定位到并发高是由于磁盘io开销大呢?可以通过三种方式: 第一种:用 top 命令 中的cpu 信息观察 Top可以看到的cpu信息有: Tasks: 29 total, 1 runnin ...

  4. 磁盘IO的性能指标

    磁盘IO的性能单位: bps (byte/s)   每秒钟 byte 数 kbps = bps / 1024 mbps = kbps / 1024 相关计算可以参考下面代码:  https://git ...

  5. Ubuntu系统监控cpu memery 磁盘Io次数 IO速率 网卡 运行时间等信息的采集

    实验室最近在做的项目要做ubuntu系统监控,要获得系统的一些信息并返回给web服务器. web服务器与ubuntu主机的通信我写的程序用的是socket,至于为什么不用java程序ssh到对应的主机 ...

  6. Linux下java获取CPU、内存、磁盘IO、网络带宽使用率

    一.CPU 使用proc文件系统,"proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为访问系统内核数据的操作提供接口.用户和应用程序可以通过proc得 ...

  7. Linux按照CPU、内存、磁盘IO、网络性能监测

      系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书 ...

  8. 磁盘IO单线程顺序写时最快的,如果多线程写,磁盘的磁头要不断重新寻址,所以写入速度反而会慢

    (1) 读写最好还是不要多线程,硬盘读写的速度有限,单线程时已经满负荷了,多线程又会增加线程之间的切换,会增加时间. 如果想增加读写速度,应该增加硬盘,做raid (2)首先是硬盘的写入是串行的,CP ...

  9. inux按照CPU、内存、磁盘IO、网络性能监测

    http://my.oschina.net/chape/blog/159640 系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长 ...

随机推荐

  1. vue-router详解

    对于单页应用,官方提供了vue-router进行路由跳转的处理,本篇主要也是基于其官方文档写作而成. 安装 基于传统,我更喜欢采用npm包的形式进行安装. npm install vue-router ...

  2. 偶数求1/2+1/4+...+1/n奇数1/1+1/3+...+1/n

    题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n Scanner scanner = new Scanner(Sy ...

  3. Appium 自动化测试(7) -- Appium 服务器初始化参数设置

    Desired Capabilities Desired capabilities 是一些发送给 Appium 服务器的键值对集合 (比如 map 或 hash),告诉服务器我们想要启动什么类型的自动 ...

  4. StringUtils 正则校验

    public class StringUtils { /** * 如果str为null,返回“”,否则返回str * @param str * @return */ public static Str ...

  5. Git分支管理及合并

    Git分支管理   建立分支 git branch [name]   切换到分支 git checkout [name]   查看有哪些分支 git branch   比较分支 git diff [b ...

  6. poj 1789 Truck History 最小生成树 prim 难度:0

    Truck History Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 19122   Accepted: 7366 De ...

  7. c# winform 操作oracle数据库的Blob字段,把图片存储到数据库,保存图片到数据库

    ///c# winform 操作oracle数据库的Blob字段,把图片存储到数据库,保存图片到数据库 闲话不多说,直接上代码 using System; using System.Collectio ...

  8. 【LeetCode 222_完全二叉树_遍历】Count Complete Tree Nodes

    解法一:递归 int countNodes(TreeNode* root) { if (root == NULL) ; TreeNode *pLeft = root->left; TreeNod ...

  9. Linux:自动获取静态IP地址,清空iptable,修改selinux脚本

    自动获取静态IP地址,清空iptable,修改selinux脚本 环境:VMware 平台:centos6.8全新 功能: 1)应用ifconfig -a,route -n,cat /etc/reso ...

  10. 此文记录了我从研二下学期到研三上学期的找工历程,包括百度、腾讯、网易、移动、电信、华为、中兴、IBM八家企业的面试总结和心得--转

    感谢电子通讯工程的研究生学长为大家整理了这么全面的求职总结,希望进入通信公司和互联网公司做非技术类岗位的学弟学妹们千万不要错过哦~ ---------------------------原文分割线-- ...