論存儲IOPS和Throughput吞吐量之間的關係

IOPS和Throughput吞吐量兩個參數是衡量存儲性能的主要指標。IOPS表示存儲每秒傳輸IO的數量,Throughput吞吐量則表示每秒數據的傳輸總量。二者在不一樣的狀況下都能表示存儲的性能情況,但應用的場景不盡相同。同時,二者之間也存在着相互的聯繫,本文就IOPS和Throughput吞吐量對存儲性能衡量的場景入手,描述二者之間的變化關係與計算方法。幫助讀者更好的瞭解存儲的性能分析與規劃。html

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吞吐量則是隻保護傳輸的實際數據,二者仍是有些許區別。ide

Throughput吞吐量衡量對於大I/O,特別是傳輸必定數據的時候最小化耗時很是有用。備份數據的時候是一個典型的例子。在備份做業中,咱們一般不會關心有多少I/O被存儲系統處理了,而是完成備份總數據的時間多少。工具

IOPS和Throughput吞吐量之間存在着線性的變化關係,而決定它們的變化的變量就是每一個I/O的大小。從圖中能夠看到,當被傳輸的I/O比較小的狀況下,每一個I/O所需傳輸的時間會比較少,單位時間內傳輸的I/O數量就多。性能

8017051.png

而因爲處理數據包頭,總的時間內傳輸實際數據相對較低。htm

8131201.png

當I/O尺寸比較大的狀況下,以下圖所示,傳輸每一個I/O的時間增大,IOPS數量降低。可是相比更高的百分比的I/O通道用來傳輸實際數據,Throughput則明顯上升。blog

8271851.png

咱們能夠用一個簡單的公式來計算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吞吐量這兩個參數,本文的觀點總結爲如下幾點:

1.性能工具統計的Throughput吞吐量永遠達不到實際的I/O流中節點的理論「帶寬」,緣由是性能工具不會統計I/O的包頭信息,而是實際的數據傳輸量。

2.磁盤物理層面IOPS和Throughput哪一個先達到了物理磁盤的極限,就決定了這個物理磁盤的性能閥值,然而決定哪一個先達到性能閥值的就是I/O的大小。

3.性能監控工具顯示IOPS低或者Throughput低於預期,先不要直接認爲存儲性能存在問題,搞清楚應用的I/O大小,再作後續判斷。

4.存儲性能另一個重要因素還有磁盤響應時間(Response Time),本文的內容是創建在存儲能夠提供接受訪問內的響應時間爲前提。

相關文章
相關標籤/搜索