zoukankan      html  css  js  c++  java
  • 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块。

  • 相关阅读:
    第十四周 Leetcode 315. Count of Smaller Numbers After Self(HARD) 主席树
    POJ1050 To the Max 最大子矩阵
    POJ1259 The Picnic 最大空凸包问题 DP
    POJ 3734 Blocks 矩阵递推
    POJ2686 Traveling by Stagecoach 状态压缩DP
    iOS上架ipa上传问题那些事
    深入浅出iOS事件机制
    iOS如何跳到系统设置里的各种设置界面
    坑爹的私有API
    业务层网络请求封装
  • 原文地址:https://www.cnblogs.com/jjkv3/p/3298958.html
Copyright © 2011-2022 走看看