IOPS计算
Device | Type | IOPS |
---|---|---|
7,200 rpm SATA drives | HDD | ~75-100 IOPS[2] |
10,000 rpm SATA drives | HDD | ~125-150 IOPS[2] |
10,000 rpm SAS drives | HDD | ~140 IOPS [2] |
15,000 rpm SAS drives | HDD | ~175-210 IOPS [2] |
RAID level | Read | Write |
---|---|---|
RAID 0 | 1 | 1 |
RAID 1 and 10 | 1 | 2 |
RAID 5 | 1 | 4 |
RAID 6 | 1 | 6 |
假设你有10个驱动器,每个驱动器的IOPS为150,那么总的IOPS为1500
如果使用raid5的话可以得到1500个读IOPS,375个写IOPS.
如何监控读写操作的IOPS?
使用windows自带的perfmon监控如下值:
逻辑/物理磁盘的Avg.Disk read/sec,Avg.Disk write/sec.
还有Disk Transfers/sec.Disk Transfers/sec是读写IOPS的综合
磁盘响应时间(Disk Response Time)条目
1.Avg. Disk sec/Transfer:显示了存储端处理的每个IO的平均时间。
2.Avg. Disk sec/Read:显示了存储端处理的每个读IO的平均时间。
3.Avg. Disk sec/Write:显示了存储端处理的每个写IO的平均时间。
上述条目显示的单位都是毫秒ms
IOPS条目
1.Disk Transfers/sec:显示了磁盘上的IOPS总数,直观的显示了说对应LUN上的每秒IO的吞吐量。
2.Disk Reads/sec:显示了磁盘每秒的读IO数量。
3.Disk Writes/sec:显示了磁盘每秒的写IO数量。
Throughput(MB/s)条目:
1.Disk Bytes/sec:显示了磁盘上的总的数据传输量,单位为Byte。
2.Disk Read Bytes/sec:显示了磁盘上读数据的传输量。
3.Disk Write Bytes/sec:显示了磁盘上写数据的传输量。
读写百分比
% idle time 、%disk time、%disk read time、% disk write time这几个值显示磁盘处于做读写状态的百分比。理论上,disk time%这个值应该小于100%,否则则说明磁盘处于极度繁忙状态,或存在性能问题。
队列条目
Avg. Disk Queue Length、Avg. disk read queue length、Avg. disk write queue length、Current Disk Queue Length这几个值显示了磁盘队列长度的相关信息。所谓Disk Queue也就是服务器端发出的存储操作正在等待被存储处理的请求数目。例如有一个应用发出一条读请求,但是目标磁盘当时正在处理其他任务。那么这个新的读请求就会被放在磁盘队列里。这时候磁盘队列的值就是1。理论上讲,Current Disk Queue Length的这个值不应该长时间地大于2。Avg. Disk Queue Length的值也是,如果看到采样期间,平均的Queue Length大于1,则说明在采样的某段时间存储无法完全响应应用端说发出的IO请求的。
参数 |
描述 |
值 |
磁盘转速 |
这个参数直接影响磁盘能够从正确的扇区读取数据的快慢 |
15,000 RPM: 150 随机 IOPS |
Read/Write |
IOPS 可以分解为读和写操作。不同的进程对读写的密集程度不一。读、写比例影响总IOPS |
|
RAID 级别 |
RAID 配置会由于不同类型的冗余影响实际写的数量。写惩罚会影响总IOPS |
RAID 0: 无RAID 惩罚 |
桌面 生命周期 |
每个桌面有6种状态,每个阶段对存储子系统都有不同的影响. |
启动: 26 IOPS
空闲: 4 IOPS |
根据这6种不同的虚拟桌面状态可以帮助架构师基于每服务器计算IOPS需求和完整的虚拟桌面基础架构.公式如下 :
总原生 IOPS=磁盘转速 IOPS * 磁盘数目
举例而言: 假设我们有8 块72G 的15,000 转 SCSI3 驱动,并按照RAID 10 配置。那么,这个存储系统总共会产生720 个功能性IOPS,计算公式如下:
功能性 IOPS=(((总原生 IOPS×写 %))/(RAID 惩罚))+(总原生IOPS×读 %)
总原生 IOPS=150×8=1200
功能性IOPS=(((1200× .8))/2)+(1200×.2)= 720
如果是MCS, 功能性IOPS =(1200*0.5)/2+ 1200*0.5=900
这个计算会帮助确定当所有的桌面执行同样行为时候的可能性,当然,不是所有的情况都适合。实际上,在不同的hypervisor 上,不同的虚拟机状态可能是不一样的。因此,作为一个架构师来说,你需要根据不同桌面的综合体验来计算不同的服务器需求。根据计算,很有可能你都会发现可能你根本不需要SAN,使用本地硬盘就足够了!
浅谈RAID写惩罚(Write Penalty)与IOPS计算
介绍
通常在讨论不同RAID保护类型的性能的时候,结论都会是RAID-1提供比较好的读写性能,RAID-5读性能不错,但是写入性能就不如RAID-1,RAID-6保护级别更高,但写性能相对更加差,RAID10是提供最好的性能和数据保护,不过成本最高等等。其实决定这些性能考虑的因素很简单,它就是RAID Write Penalty(写惩罚)。本文从原理上解释了不同RAID保护级别的写惩罚,以及通过写惩罚计算可用IOPS的方法。
更多信息
RAID-5 Write Penalty的例子:
存储方案规划的过程中,最基本的考虑因素有两个,性能和容量。性能上的计算看可以分为IOPS和带宽需求。计算IOPS,抛开存储阵列的缓存和前端口不谈。计算后端物理磁盘的IOPS不能简单的把物理磁盘的最大IOPS相加而获得。原因是,对于不同的RAID级别,为了保证当有物理磁盘损坏的情况下可以恢复数据,数据写入的过程中都需要有一些特别的计算。比如对于RAID-5,条带上的任意磁盘上的数据改变,都会重新计算校验位。如下图所示,一个7+1的RAID-5的条带中,七个磁盘存储数据,最后一个磁盘存储校验位。
对于一个数据的写入,我们假设在第五个磁盘上写入的数据为1111,如下图所示。那么整个RAID-5需要完成写入的过程分为以下几步:
1.读取原数据0110,然后与新的数据1111做XOR操作: 0110 XOR 1111 = 1001
2.读取原有的校验位0010
3.用第一步算出的数值与原校验位再做一次XOR操作: 0010 XOR 1001 = 1011
4.然后将1111新数据写入到数据磁盘,将第三步计算出来的新的校验位写入校验盘。
由上述几个步骤可见,对于任何一次写入,在存储端,需要分别进行两次读+两次写,所以说RAID-5的Write Penalty的值是4。
不同RAID级别的Write Penalty:
下表列出了各种RAID级别的Write Penalty值:
RAID-0:直接的条带,数据每次写入对应物理磁盘上的一次写入
RAID-1和10:RAID-1 和RAID-10的写惩罚很简单理解,因为数据的镜像存在的,所以一次写入会有两次。
RAID-5:RAID-5由于要计算校验位的机制存在,需要读数据、读校验位、写数据、写校验位四个步骤,所以RAID-5的写惩罚值是4。
RAID-6:RAID-6由于有两个校验位的存在,与RAID-5相比,需要读取两次校验位和写入两次校验位,所以RAID-6的写惩罚值是6。
计算IOPS:
根据上文的描述,在实际存储方案设计的过程中,计算实际可用IOPS的过程中必须纳入RAID的写惩罚计算。计算的公式如下:
物理磁盘总的IOPS = 物理磁盘的IOPS × 磁盘数目
可用的IOPS = (物理磁盘总的IOPS × 写百分比 ÷ RAID写惩罚) + (物理磁盘总的IOPS × 读百分比)
假设组成RAID-5的物理磁盘总共可以提供500 IOPS,使用该存储的应用程序读写比例是50%/50%,那么对于前端主机而言,实际可用的IOPS是:
(500 ×50% ÷ 4)+ ( 500 * 50%) = 312.5 IOPS
通常当数据库管理员提出需要更多存储空间的时候,他们还会指定必须要达到多少IOPS。现在有这样一个需求,20TB存储空间同时满足4500 IOPS+RAID 5,我应该如何计算?RAID 5或者RAID 1/0的时候分别需要多少块硬盘?
RAID类型 | 公式 |
---|---|
RAID 5和3 | Drive IOPS = Read IOPS + 4*Write IOPS |
RAID 6 | Drive IOPS = Read IOPS + 6*Write IOPS |
RAID 1和1/0 | Drive IOPS = Read IOPS + 2*Write IOPS |
假定4500 IOPS中读/写比是2:1,则不同RAID类型Drive IOPS要求分别如下:
RAID 1/0: (2/3)*4500 + 2*(1/3)*4500 = 6000 IOPS
RAID 5: (2/3)*4500 + 4*(1/3)*4500 = 9000 IOPS
RAID 6: (2/3)*4500 + 6*(1/3)*4500 = 12000 IOPS
再参照下表中不同类型硬盘单块IOPS参数,得出需要多少块硬盘:
硬盘类型 | IOPS |
---|---|
Fibre Channel 15k rpm | 180 |
SAS 15k rpm | 180 |
Fibre Channel 10k rpm | 140 |
SATA 7.2k rpm | 80 |
SATA 5.4k rpm | 40 |
Flash drive | 2500 |
假定选用FC 15K RPM硬盘,则:
RAID 1/0: 6000/180 = 34 块
RAID 5: 9000/180 = 50 块
RAID 6: 12000/180 = 67 块
注:实际情况下还需考虑Vault Drivers (共5块)以及Hot Spares (建议每30块硬盘一个)。
最后,如果选用600GB FC硬盘来实现20TB可用空间,则RAID 1/0需要78块,RAID 5需要42块。
IOPS计算的更多相关文章
- 【转载】RAID写惩罚(Write Penalty)与IOPS计算
浅谈RAID写惩罚(Write Penalty)与IOPS计算 Character is what you are in the dark. 暗处最能反映一个人真正品格. ---------Apri ...
- 浅谈RAID写惩罚(Write Penalty)与IOPS计算
介绍 通常在讨论不同RAID保护类型的性能的时候,结论都会是RAID-1提供比较好的读写性能,RAID-5读性能不错,但是写入性能就不如RAID-1,RAID-6保护级别更高,但写性能相对更加差,RA ...
- 磁盘IOPS计算与测量
IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一.IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求 ...
- 硬盘IOPS与读写速度
IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一.IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求 ...
- [转]linux 系统监控、诊断工具之 IO wait
1.问题: 最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端.本机都没问题,但是没想到上了第二份日志之后,问题来了: 集群中的某台机器 top 看到负载巨高,集群中的机器 ...
- Linux System and Performance Monitoring
写在前面:本文是对OSCon09的<Linux System and Performance Monitoring>一文的学习笔记,主要内容是总结了其中的要点,以及加上了笔者自己的一些理解 ...
- RAID在数据库存储上的应用-转
随着单块磁盘在数据安全.性能.容量上呈现出的局限,磁盘阵列(Redundant Arrays of Inexpensive/Independent Disks,RAID)出现了,RAID把多块独立的磁 ...
- 1. RAID在数据库存储上的应用
随着单块磁盘在数据安全.性能.容量上呈现出的局限,磁盘阵列(Redundant Arrays of Inexpensive/Independent Disks,RAID)出现了,RAID把多块独立的磁 ...
- RAID分类
1. RAID在数据库存储上的应用 随着单块磁盘在数据安全.性能.容量上呈现出的局限,磁盘阵列(Redundant Arrays of Inexpensive/Independent Disks, ...
随机推荐
- hdu4419
对于这类面积覆盖的题,大致就两点要注意的 1.同一把矩形放在笛卡尔坐标系上做 2.pushup函数要注意下细节:及在统计子区间和之前要先判断是否有子区间 用sum数组来保存区间被覆盖的情况,如果遇到多 ...
- 两个inline-block元素上下不对齐,出现错位
摘要: 声明:此文章为转载(点击查看原文),如有侵权24小时内删除.联系QQ:1522025433. 问题描述:在类似 <div class="ovh"> <h3 ...
- 微信h5支付源码DEMO参考
类库代码 wechatH5Pay.php <?php //use Flight; /** * 微信支付服务器端下单 * 微信APP支付文档地址: https://pay.weixin.qq.co ...
- 【转载】和 Thrift 的一场美丽邂逅
http://www.cnblogs.com/cyfonly/p/6059374.html 一. 与 Thrift 的初识 也许大多数人接触 Thrift 是从序列化开始的.每次搜索 “java序列化 ...
- 008 Spark中standalone模式的HA(了解,知道怎么配置即可)
standalone也存在单节点问题,这里主要是配置两个master. 1.官网 2.具体的配置 3.配置方式一(不是太理想) 这种知识基于未来可以重启,但是不能在宕机的时候提供服务. 方式一:Sin ...
- Teamviewer 远程控制时 无法正常操作鼠标点击
其中一种可能: 本机开启了360的64位Intel-VT核晶防护后,用Teamviewer远程到本机,远程电脑无法操作本机的鼠标点击(左右键都不行),查看日志显示拦截了模拟按键.关闭核晶防护就可以正常 ...
- POJ 1182 食物链 【带权并查集】
<题目链接> 题目大意: 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我 ...
- POJ 2437 Muddy roads【贪心】(区间覆盖)
题目链接:https://vjudge.net/contest/194475#problem/C 题目大意: 有n滩泥 木板长度为L 求至少需要多少木板才能覆盖这些泥 解题思路: 把泥块的起点升序排序 ...
- 对扫描的pdf文件生成目录
很多pdf文件是直接扫描生成的,于是它的内容都是一张张的图片,当然就更没有目录索引了. 有的时候想找某些内容,只能一点点的移动滚动条,非常不方便. 那么有什么方法能生成目录呢? 方法一:使用福昕pdf ...
- 不一样的go语言-一样的语法
前言 上一篇入门篇算是初识庐山真面目,我们知道了一个go程序的构成,在这里总结一下. //包名 package //导入包 import "fmt" //main方法,程序入口 ...