存储性能IOPS详解_第1页
存储性能IOPS详解_第2页
存储性能IOPS详解_第3页
存储性能IOPS详解_第4页
存储性能IOPS详解_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文档密级 谈谈IOPS11、 IOPS详解l 磁盘性能指标-IOPS 理论机械硬盘的连续读写性很好, 但随机读写性能很差。这是因为磁头移动至正确的磁道上需要时间,随机读写时,磁头不停的移动,时间都花在了磁头寻道上,所以性能不高。  如下图:IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。l 随机读写频繁的应用-IOPS是关键衡量指标如小文件存储(图片)、OLTP数据库、邮件服务器,关注随机读写性

2、能。读取10000个1KB文件,用时10秒  Throught(吞吐量)=1MB/s ,IOPS=1000  追求IOPSl 顺序读写频繁的应用-数据吞吐量是关键衡量指标传输大量连续数据,如电视台的视频编辑,视频点播VOD(Video On Demand),关注连续读写性能。读取1个10MB文件,用时0.2秒  Throught(吞吐量)=50MB/s, IOPS=5  追求吞吐量磁盘服务时间传统磁盘本质上一种机械装置,如FC, SAS, SATA磁盘,转速通常为5400/7200/10K/15K rpm不等。影响磁盘的关键因素是磁盘服务时间,即磁盘完成

3、一个I/O请求所花费的时间,它由寻道时间、旋转延迟和数据传输时间三部分构成。l 寻道时间 Tseek是指将读写磁头移动至正确的磁道上所需要的时间。寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在315ms。常见磁盘平均物理寻道时间为:7200转/分的STAT硬盘平均物理寻道时间是10.5ms10000转/分的STAT硬盘平均物理寻道时间是7ms15000转/分的SAS硬盘平均物理寻道时间是5msl 旋转延迟 Trotation是指盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间。旋转延迟取决于磁盘转速,通常使用磁盘旋转一周所需时间的1/2表示。常见硬盘的旋转

4、延迟时间:7200   rpm的磁盘平均旋转延迟大约为60*1000/7200/2 = 4.17ms10000 rpm的磁盘平均旋转延迟大约为60*1000/10000/2 = 3ms,15000 rpm的磁盘其平均旋转延迟约为60*1000/15000/2 = 2ms。l 数据传输时间 Ttransfer是指完成传输所请求的数据所需要的时间,它取决于数据传输率,其值等于数据大小除以数据传输率。常见硬盘接口的数据传输率IDE/ATA能达到133MB/sSATA II 可达到300MB/sSAS 在300-600MB/s之间数据传输时间通常远小于前两部分消耗时间。简

5、单计算时可忽略。最大IOPS的理论计算方法:IOPS = 1000 ms/ (寻道时间 + 旋转延迟)。可以忽略数据传输时间。7200   rpm的磁盘 IOPS = 1000 / (10.5 + 4.17)  = 68 IOPS10000 rpm的磁盘IOPS = 1000 / (7 + 3) = 100 IOPS15000 rpm的磁盘IOPS = 1000 / (5 + 2) = 142 IOPS2、 吞吐量与IOPS进行分析1、吞吐量(throughput)吞吐量主要取决于阵列的构架,光纤(FC SAN)或网络(IP SAN)通道的大小以及硬盘的个数。阵列

6、的构架与每个阵列不同而不同,他们也都存在内部带宽(类似于pc的系统总线),不过一般情况下,内部带宽都设计的很充足,不是瓶颈的所在。光纤通道的影响还是比较大的,如数据仓库环境中,对数据的流量要求很大,而一块2Gb的光纤卡,所能支撑的最大流量应当是2Gb/8(小B)=250MB/s(大B)的实际流量,需要4块光纤卡才能达到1GB/s的实际流量,所以数据仓库环境可以考虑换4Gb的光纤卡。最后说一下硬盘的限制,这里是最重要的,当前面的瓶颈不再存在的时候,就要看硬盘的个数了,我下面列一下不同的硬盘所能支撑的流量大小(数据取自硬盘厂商的标准参数):硬盘类型SASATA转速规格10K15K流量10M/s13

7、M/s8M/s那么,假定一套存储有120块15K rpm的光纤硬盘,那么该存储可以支撑的最大流量为120*13=1560MB/s,如果是2Gb的光纤卡,可能需要6块才能够,而4Gb的光纤卡,3-4块就够了。2、IOPS(Input/Output Operations Per Second)决定IOPS的主要取决与阵列的算法,cache命中率,以及磁盘个数。阵列的算法因为不同的阵列不同而不同。 cache的命中率取决于数据的分布,cache size的大小,数据访问的规则,以及cache的算法,如果一个阵列,读cache的命中率越高越好,一般表示它可以支持更多的IOPS,为什么这么说呢?这个就与

8、我们下面要讨论的硬盘IOPS有关系了。硬盘类型SASATA转速规格10K15KIOPS10015050同样,如果一个阵列有120块15K rpm的SAS硬盘,那么,它能撑的最大IOPS为120*150=18000,这个为硬件限制的理论值,如果超过这个值,硬盘的响应可能会变的非常缓慢而不能正常提供业务。3、 Cache以及命中率Cache:高速缓冲存储器,一种特殊的存储器子系统;主要作用:复制了频繁使用的数据以利于快速访问。是把读取过的数据保存起来,重新读取时若命中(找到需要的数据)就不要去读硬盘了,若没有命中就读硬盘。其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把

9、不再读的内容不断往后排,直至从中删除。 l Cache命中率与容量的关系Cache的命中率随它的容量的增加而提高,它们之间的关系曲线如图5.34所示。在Cache容量比较小的时候,命中率的提高得非常快,随着Cache容量的增加,命中率提高的速度逐渐降低。当Cache容量增加到无穷大时,命中率可望达到100,但是,这在实际上是做不到的。 下图是cache命中率的关系。l Cache命中率与块大小的关系   在采用组相联映象方式的Cache中,当Cache的容量一定时,块的大小对命中率的影响非常敏感。图5.35表示随着Cache块的由小到大的变化,命中率上升

10、和下降的情况。 图 5.35 Cache命中率与块大小的关系   开始时,块大小很小,例如只有一个存储单元,这时的命中率H很低。随着块大小的增加,由于程序的空间局部性起作用,同一块中数据的利用率比较高,因此,Cache的命中率增加。这种增加趋势在某一个最佳块大小处达到最大值。在这一点以后,命中率随着块大小的增加反而减小。实际上,当块大小非常大时,进入Cache中的许多数据可能根本用不上。而且,随着块大小的增加,程序时间局部性的作用就会逐渐减弱。最后,当块大小等于整个Cache的容量时,命中率将趋近于零。l Cache命中率与组数的关系

11、当Cache的容量一定时,在采用组相联映象和变换方式的Cache中,分组的数目对于Cache命中率的影响是很明显的。随着组数的增加,Cache的命中率要降低。当分组的数目增加时,主存中的某一块可以映象到Cache中的块数就将减少,从而导致命中率下降。4、 浅谈RAID写惩罚(Write Penalty)与IOPS计算通常在讨论不同RAID保护类型的性能的时候,结论都会是RAID-1提供比较好的读写性能,RAID-5读性能不错,但是写入性能就不如RAID-1,RAID-6保护级别更高,但写性能相对更加差,RAID10是提供最好的性能和数据保护,不过成本最高等等。其实决定这些性能考虑的因素很简单,

12、它就是RAID Write Penalty(写惩罚)。本文从原理上解释了不同RAID保护级别的写惩罚,以及通过写惩罚计算可用IOPS的方法。存储方案规划的过程中,最基本的考虑因素有两个,性能和容量。性能上的计算看可以分为IOPS和带宽需求。计算IOPS,抛开存储阵列的缓存和前端口不谈。计算后端物理磁盘的IOPS不能简单的把物理磁盘的最大IOPS相加而获得。原因是,对于不同的RAID级别,为了保证当有物理磁盘损坏的情况下可以恢复数据,数据写入的过程中都需要有一些特别的计算。比如对于RAID-5,条带上的任意磁盘上的数据改变,都会重新计算校验位。如下图所示,一个7+1的RAID-5的条带中,七个磁

13、盘存储数据,最后一个磁盘存储校验位。对于一个数据的写入,我们假设在第五个磁盘上写入的数据为1111,如下图所示。那么整个RAID-5需要完成写入的过程分为以下几步:1.读取原数据0110,然后与新的数据1111做XOR操作: 0110 XOR 1111 = 10012.读取原有的校验位00103.用第一步算出的数值与原校验位再做一次XOR操作: 0010 XOR 1001 = 10114.然后将1111新数据写入到数据磁盘,将第三步计算出来的新的校验位写入校验盘。由上述几个步骤可见,对于任何一次写入,在存储端,需要分别进行两次读+两次写,所以说RAID-5的Write Penalty的值是4l

14、 不同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。RAID LevelWrite Cost011 or 10254665、 计算IOPS根据上文的描述,在

15、实际存储方案设计的过程中,计算实际可用IOPS的过程中必须纳入RAID的写惩罚计算。计算的公式如下:物理磁盘总的IOPS = 物理磁盘的IOPS × 磁盘数目可用的IOPS = (物理磁盘总的IOPS × 写百分比 ÷ RAID写惩罚) + (物理磁盘总的IOPS × 读百分比)假设组成RAID-5的物理磁盘总共可以提供500 IOPS,使用该存储的应用程序读写比例是50%/50%,那么对于前端主机而言,实际可用的IOPS是:(500 ×50% ÷ 4)+ ( 500 * 50%) = 312.5 IOPSl 影响测试的因素实际测量中

16、,IOPS数值会受到很多因素的影响,包括I/O负载特征(读写比例,顺序和随机,工作线程数,队列深度,数据记录大小)、系统配置、操作系统、磁盘驱动等等。因此对比测量磁盘IOPS时,必须在同样的测试基准下进行,即便如此也会产生一定的随机不确定性。6、 案例分析业务的iops是10000,读cache命中率是30%,读iops为60%,写iops为40%,磁盘个数为120,那么分别计算在raid5与raid10的情况下,每个磁盘的iops为多少。raid5:单块盘的iops = (10000*(1-0.3)*0.6 + 4 * (10000*0.4)/120= (4200 + 16000)/120=

17、 16810000*(1-0.3)*0.6表示是读的iops,比例是0.6,除掉cache命中,实际只有4200个iops而4 * (10000*0.4) 表示写的iops,因为每一个写,在raid5中,实际发生了4个io,所以写的iops为16000个为了考虑raid5在写操作的时候,那2个读操作也可能发生命中,所以更精确的计算为:单块盘的iops = (10000*(1-0.3)*0.6 + 2 * (10000*0.4)*(1-0.3) + 2 * (10000*0.4)/120= (4200 + 5600 + 8000)/120= 148计算出来单个盘的iops为148个,基本达到磁盘极限raid10单块盘的iops = (10000*(1-0.3)*0.6 + 2 * (10000*0.4)/120= (4200 + 8000)/120= 102可以看到,因为raid10对于一个写操作,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论