存储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
10,000 RPM: 110 随机 IOPS
5,400 RPM: 50 随机 IOPS


Read/Write


IOPS 可以分解为读和写操作。不同的进程对读写的密集程度不一。读、写比例影响总IOPS

  • 读: 20%
  • 写: 80%(MCS下为50%:50%)

RAID 级别


RAID 配置会由于不同类型的冗余影响实际写的数量。写惩罚会影响总IOPS


RAID 0: 无RAID 惩罚
RAID 1:  penalty of 2
RAID 10: Penalty of 2
RAID 5 (4 disks): Penalty of 4
RAID 5 (5 disks): Penalty of 5


桌面

生命周期


每个桌面有6种状态,每个阶段对存储子系统都有不同的影响.


启动: 26 IOPS
登录: 14 IOPS
工作:

  • 轻量: 4-8 IOPS
  • 普通: 8-12 IOPS
  • 重量: 12-20 IOPS

空闲: 4 IOPS
登出: 12 IOPS
Offline: 0 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计算

作者:dostor出处:博客2013-08-27 08:41

  介绍

  通常在讨论不同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的时候分别需要多少块硬盘?

首先需要知道I/O中读操作(Read)与写操作(Write)所占的百分比。然后通过下列公式,将主机的IOPS需求转换成硬盘实际IOPS负载:

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块。

时间: 2024-10-14 14:08:15

存储IOPS计算的相关文章

论存储IOPS和Throughput吞吐量之间的关系

介绍 IOPS和Throughput吞吐量两个参数是衡量存储性能的主要指标.IOPS表示存储每秒传输IO的数量,Throughput吞吐量则表示每秒数据的传输总量.两者在不同的情况下都能表示存储的性能状况,但应用的场景不尽相同.同时,两者之间也存在着相互的联系,本文就IOPS和Throughput吞吐量对存储性能衡量的场景入手,描述两者之间的变化关系与计算方法.帮助读者更好的了解存储的性能分析与规划. 更多信息 IOPS与Throughput的关系: IOPS(IO per Second)是用来

ServerSAN解析(二):Nutanix实现存储与计算资源集成

Nutanix是一套分布式存储系统,在物理节点上集成了存储和计算资源,但逻辑上计算存储融合平台将所有存储逻辑运行在一个预先封装好的虚拟机(存储控制虚拟机)中,该虚拟机在Hypervisor之上运行,与业务计算虚拟机隔离,并为业务虚拟机提供高性能存储服务. Nutanix存储基础设施(NX系列超融合系统)的扩展不受任何管理程序的限制,可以扩展到上千个节点,存储逻辑与虚拟化平台分离,实现了计算和存储故障域隔离.独立的故障域使得平台更加稳定,更适合IO密集或者可靠性要求高的应用场景. 存储虚拟机和计算

6月2日云栖精选夜读:存储与计算分离:OSS构建表_+_计算引擎对接

原文链接 看到标题,可能有用户要问:OSS不是用来存图片.视频.及文件的吗,还可以在上面建表.数仓?计算效率和经济性表现怎么样? 热点热议 存储与计算分离:OSS构建表 + 计算引擎对接 作者:cw   发表在:阿里云存储服务 springboot(八):RabbitMQ详解 作者:琴瑟琵琶 阿里云文件存储SMB协议服务及其申请和使用指南 作者:nas-hz   发表在:阿里云存储服务 知识整理 PHP 7.0 升级备注 作者:巴吉 PHP 5.5 / PHP5.6 / PHP-NG 和 HHV

浅谈RAID写惩罚(Write Penalty)与IOPS计算

介绍 ? ? ???? 通常在讨论不同RAID保护类型的性能的时候,结论都会是RAID-1提供比较好的读写性能,RAID-5读性能不错,但是写入性能就不如RAID-1,RAID-6保护级别更高,但写性能相对更加差,RAID10是提供最好的性能和数据保护,不过成本最高等等.其实决定这些性能考虑的因素很简单,它就是RAID Write Penalty(写惩罚).本文从原理上解释了不同RAID保护级别的写惩罚,以及通过写惩罚计算可用IOPS的方法. 更多信息 ? ? RAID-5?Write Pena

浅谈RAID写惩罚(Write Penalty)与IOPS计算(转载)

介绍 通常在讨论不同RAID保护类型的性能的时候,结论都会是RAID-1提供比较好的读写性能,RAID-5读性能不错,但是写入性能就不如RAID-1,RAID-6保护级别更高,但写性能相对更加差,RAID10是提供最好的性能和数据保护,不过成本最高等等.其实决定这些性能考虑的因素很简单,它就是RAID Write Penalty(写惩罚).本文从原理上解释了不同RAID保护级别的写惩罚,以及通过写惩罚计算可用IOPS的方法. 更多信息 RAID-5 Write Penalty的例子: 存储方案规

磁盘IOPS计算与测量

MySQL的QPS计算 show global status where Variable_name in('com_select','com_insert','com_delete','com_update'); 等待10秒 show global status where Variable_name in('com_select','com_insert','com_delete','com_update'); 计算差值 MySQL的TPS计算 show global status wher

union 类型数据存储及计算

今天在做一个C语言题目的时候,碰上了这样一题: #include <iostream> using namespace std; union { int i; char x[2]; }a; int main() { a.x[0] = 10; a.x[1] = 1; cout<<a.i; system("pause"); return 0; } 结果是这样的: 开始我的思路是 int 占四个字节,x[0],x[1]分别一个字节,由于惯性地认为x[0]是排在x[1]

7.3 编址与存储相关计算

两个方面的内容:一方面是内存的编址方法,另外一方面就是磁带.光盘它的容量以及其它方面的一些计算.内存编址方法这一块有两个方面的内容是需要大家掌握的:第一方面是编址, 编址的概念:在计算机的系统当中,它的存储器有很多个存储空间,就如同我们去一个澡堂,它可能有储物柜,然后排列了很多很多的储物柜,它会对这个储物柜进行编号,从1号开始编一直编到100号或者是200号,如果说你不对这些储物柜进行编号,那么这些储物柜就无法利用起来.因为客人来了之后他不清楚自己是哪一个储物柜,所以不方便把东西放进来也不方便把

Swift类与结构、存储属性、计算属性、函数与方法、附属脚本等

写了12个Person来复习,不过完成同样的代码需要敲键盘的次数相比OC确实少了很多,这很多应该归功于Swift中不写分号,以及少了OC中的中括号. 一.类与结构体 两者在Swift中差不了多少了 类与结构体有很多相同的地方: (第2,3点是其他语言中不存在的) 1)都可以定义属性/方法/下标(结构体也可以定义方法了) 2)都能初始化(通过构造方法) 3)都能使用扩展(extension)与协议(protocol) 4)类与结构体(枚举)中的全局属性/方法:在类中用class关键字,但在结构体中