zoukankan      html  css  js  c++  java
  • 论存储IOPS和Throughput吞吐量之间的关系

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

    http://www.csdn.net/article/2015-01-14/2823552

    IOPS和Throughput吞吐量两个参数是衡量存储性能的主要指标。IOPS表示存储每秒传输IO的数量,Throughput则表示每秒数据的传输总量。本文就IOPS和Throughput吞吐量应用场景入手,描述两者之间的变化关系与计算方法

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

    IOPS与Throughput的关系:

    IOPS(IO per Second)是用来计算I/O流中每个节点中每秒传输的数量(关于IO流中的每个节点的解释,参考文章:浅析I/O处理过程与存储性能的关系)。

    通常情况下,广义的IOPS指得是服务器和存储系统处理的I/O数量。但是,由于在IO传输的过程中,数据包会被分割成多块(block),交由存储阵列缓存或者磁盘处理,对于磁盘来说这样每个block在存储系统内部也被视为一个I/O,存储系统内部由缓存到磁盘的的数据处理也会以IOPS来作为计量的指标之一。

    本文中提到的IOPS,是指得广义的IOPS,即由服务器发起的,并由存储系统中处理的I/O单位。

    IOPS通常对于小I/O,且传输I/O的数量比较大的情况下,是一个最主要的衡量指标。例如,典型的OLTP系统中,高的IOPS则意味着数据库的事务可以被存储系统处理。

    Throughput吞吐量是用来计算每秒在I/O流中传输的数据总量。

    这个指标,在大多数的磁盘性能计算工具中都会显示,最简单的在Windows文件拷贝的时候,就会显示MB/s。通常情况下,Throughput吞吐量只会计算I/O包中的数据部分,至于I/O包头的数据则会被忽略在Throughput吞吐量的计算中。

    广义上的Throughput吞吐量,也会被叫做“带宽”,用来衡量I/O流中的传输通道,比如2/4/8Gbps Fibre Channel、60Mbps SCSI等等。

    但 “带宽”会包括通道中所有数据的总传输量的最大值,而Throughput吞吐量则是只保护传输的实际数据,两者还是有些许区别。

    Throughput吞吐量衡量对于大I/O,特别是传输一定数据的时候最小化耗时非常有用。备份数据的时候是一个典型的例子。在备份作业中,我们通常不会关心有多少I/O被存储系统处理了,而是完成备份总数据的时间多少。

    IOPS和Throughput吞吐量之间存在着线性的变化关系,而决定它们的变化的变量就是每个I/O的大小。从图中可以看到,当被传输的I/O比较小的情况下,每个I/O所需传输的时间会比较少,单位时间内传输的I/O数量就多。

    而由于处理数据包头,总的时间内传输实际数据相对较低。

    当I/O尺寸比较大的情况下,如下图所示,传输每个I/O的时间增大,IOPS数量下降。但是相比更高的百分比的I/O通道用来传输实际数据,Throughput则明显上升。

    我们可以用一个简单的公式来计算Throughput和IOPS之间的关系:

    Throughput MB/s = IOPS * KB per IO / 1024

    假设一个10个10K SAS磁盘,每个磁盘提供140 IOPS,总共有1400最大IOPS。理论上这些磁盘处理不同的IO大小,所能达到的Throughput吞吐量是有区别的。简单的来说,物理层面IOPS和Throughput哪个先达到了物理磁盘的极限,就决定了这个物理磁盘的性能阀值。下面的计算公式可以看到,单位I/O大小可以使得吞吐量成倍提升,但是未能达到10个SAS磁盘1GB/S(每个磁盘100MB/s带宽)的理论“带宽”。显而易见,因为大多数应用的I/O不会那么大,所以你会看到存储阵列的吞吐量远小于厂商提供的理论值,原因就是因为IOPS先达到了性能阀值,使得吞吐量无法再提升。当然也有特殊的应用,例如流媒体服务器等,应用端可以使用2MB的I/O大小,那么吞吐量利用率显然会更加高,IOPS的要求则相对较低了。

    MB/s = 1400 * 64 /1024 = 87.5 MB/s
    MB/s = 1400 * 128 /1024 = 175 MB/s
    MB/s = 1400 * 256 /1024 = 350 MB/s

    综上所述,在规划存储性能和处理存储性能问题的时候,需要综合看IOPS和Throughput吞吐量这两个参数,本文的观点总结为以下几点:

    • 性能工具统计的Throughput吞吐量永远达不到实际的I/O流中节点的理论“带宽”,原因是性能工具不会统计I/O的包头信息,而是实际的数据传输量。
    • 磁盘物理层面IOPS和Throughput哪个先达到了物理磁盘的极限,就决定了这个物理磁盘的性能阀值,然而决定哪个先达到性能阀值的就是I/O的大小。
    • 性能监控工具显示IOPS低或者Throughput低于预期,先不要直接认为存储性能存在问题,搞清楚应用的I/O大小,再做后续判断。
    • 存储性能另外一个重要因素还有磁盘响应时间(Response Time),本文的内容是建立在存储可以提供接受访问内的响应时间为前提。
     
    看小IO多还是大IO多
    大IO:对于磁盘来说每个block在存储系统内部也被视为一个I/O,block的大小
     
     
    IOPS通常对于单个小I/O,且传输I/O的数量比较大的情况下,是一个最主要的衡量指标。
    IOPS这里IO传输的速度取决于单个IO的IO size,一个大IO会占用比较多的带宽才能传输完,如果当前带宽不够,当前大IO较多的情况下就会拖慢IOPS
     
     
    同理,如果大IO比较多,那么Throughput相对就会较大,在带宽一定的情况下,所容纳的IO就会较少
    如果小IO比较多,那么Throughput相对就会较小,在带宽一定的情况下,所容纳的IO就会较多
     
    Throughput这个是动态的,在带宽不够的时候要加带宽
    通常还是看IOPS比较好,在带宽一定的时候,IOPS通常对于小I/O,且传输I/O的数量比较大的情况下,是一个最主要的衡量指标。例如,典型的OLTP系统中,高的IOPS则意味着数据库的事务可以被存储系统处理。

     
     
     
     
     
     
  • 相关阅读:
    PAT (Advanced Level) 1060. Are They Equal (25)
    PAT (Advanced Level) 1059. Prime Factors (25)
    PAT (Advanced Level) 1058. A+B in Hogwarts (20)
    PAT (Advanced Level) 1057. Stack (30)
    PAT (Advanced Level) 1056. Mice and Rice (25)
    PAT (Advanced Level) 1055. The World's Richest (25)
    PAT (Advanced Level) 1054. The Dominant Color (20)
    PAT (Advanced Level) 1053. Path of Equal Weight (30)
    PAT (Advanced Level) 1052. Linked List Sorting (25)
    PAT (Advanced Level) 1051. Pop Sequence (25)
  • 原文地址:https://www.cnblogs.com/MYSQLZOUQI/p/4244300.html
Copyright © 2011-2022 走看看