1. 存儲IOPS和吞吐量之間的具體關系是什麼
通常情況下,廣義的IOPS指得是伺服器和存儲系統處理的I/O數量。但是,由於在IO傳輸的過程中,數據包會被分割成多塊(block),交由存儲陣列緩存或者磁碟處理,對於磁碟來說這樣每個block在存儲系統內部也被視為一個I/O,存儲系統內部由緩存到磁碟的的數據處理也會以IOPS來作為計量的指標之一。本文中提到的IOPS,是指得廣義的IOPS,即由伺服器發起的,並由存儲系統中處理的I/O單位。https://community.emc.com/docs/DOC-29186
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的大小。