有關IOPS與吞吐量還有頻寬的區別

2021-06-06 03:51:10 字數 3616 閱讀 3617

有關iops與吞吐量還有頻寬的區別

iops(i/os per second):即每秒輸入輸出次數。也就是每秒鐘接受i/o指令的次數。指的是系統在單位時間內能處理的最大的i/o頻度;一般,oltp應用涉及更多的頻繁讀寫,更多的考慮iops;

iops測試結果與很多測試引數和儲存系統具體配置有關。iops還可以細分為100%順序讀(sequential read)iops、100%順序寫iops、100%隨機讀iops、100%隨機寫iops等,在同等情況下這四種iops中100%順序讀的iops最高。

吞吐量是指在一定時間內由一處傳輸到另一處或被處理的資料量。如同高速路上的單位時間內通過的車輛總數。

頻寬是指通訊線路中允許的最大資料傳輸速度也可以說是最大資料傳辦理的頻率。如同高速公路上允許通過的車的最高車速。

做個筆記。以便理解   olap更多的考慮頻寬 1

、吞吐量

吞吐量主要取決於陣列的構架,光纖通道的大小

(現在陣列一般都是光纖陣列,至於

scsi

這樣的ssa

陣列,我們不討論

)以及硬碟的個數。陣列的構架與每個陣列不同而不同,他們也都存在內部頻寬

(類似於

pc的系統匯流排

),不過一般情況下,內部頻寬都設計的很充足,不是瓶頸的所在。

光纖通道的影響還是比較大的,如資料倉儲環境中,對資料的流量要求很大,而一塊

2gb的光纖卡,所能支撐的最大流量應當是

2gb/8(

小b)=250mb/s(大b)

的實際流量,當

4塊光纖卡才能達到

1gb/s

的實際流量,所以資料倉儲環境可以考慮換

4gb的光纖卡。

最後說一下硬碟的限制,這裡是最重要的,當前面的瓶頸不再存在的時候,就要看硬碟的個數了,我下面列一下不同的硬碟所能支撐的流量大小:

10 k rpm 15 k rpm ata

——— ——— ———

10m/s 13m/s 8m/s

那麼,假定乙個陣列有

120塊

15k rpm

的光纖硬碟,那麼硬碟上最大的可以支撐的流量為

120*13=1560mb/s

,如果是

2gb的光纖卡,可能需要

6塊才能夠,而

4gb的光纖卡,

3-4塊就夠了。2、

iops

決定iops

的主要取決與陣列的演算法,

cache

命中率,以及磁碟個數

。陣列的演算法因為不同的陣列不同而不同,如我們最近遇到在

hds usp

上面,可能因為

ldev(lun)

存在佇列或者資源限制,而單個

ldev

的iops

就上不去,所以,在使用這個儲存之前,有必要了解這個儲存的一些演算法規則與限制。

cache

的命中率取決於資料的分布,

cache size

的大小,資料訪問的規則,以及

cache

的演算法,如果完整的討論下來,這裡將變得很複雜,可以有一天好討論了。我這裡只強調乙個

cache

的命中率,如果乙個陣列,讀

cache

的命中率越高越好,一般表示它可以支援更多的

iops

,為什麼這麼說呢

?這個就與我們下面要討論的硬碟

iops

有關係了。

硬碟的限制,每個物理硬碟能處理的

iops

是有限制的,如

10 k rpm 15 k rpm ata

——— ——— ———

100 150 50

同樣,如果乙個陣列有

120塊

15k rpm

的光纖硬碟,那麼,它能撐的最大

iops

為120*150=18000

,這個為硬體限制的理論值,如果超過這個值,硬碟的響應可能會變的非常緩慢而不能正常提供業務。

在raid5

與raid10

上,讀iops

沒有差別,但是,相同的業務寫

iops

,最終落在磁碟上的

iops

是有差別的,而我們評估的卻正是磁碟的

iops

,如果達到了磁碟的限制,效能肯定是上不去了。

那我們假定乙個

case

,業務的

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

= 168

這裡的10000*(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

對於乙個寫操作,只發生2次

io,所以,同樣的壓力,同樣的磁碟,每個盤的

iops

只有102

個,還遠遠低於磁碟的極限

iops

。在乙個實際的

case

中,乙個恢復壓力很大的

standby(

這裡主要是寫,而且是小

io的寫

),採用了

raid5

的方案,發現效能很差,通過分析,每個磁碟的

iops

在高峰時期,快達到

200了,導致響應速度巨慢無比。後來改造成

raid10

,就避免了這個效能問題,每個磁碟的

iops

降到100

左右。

IOPS與吞吐量

機械硬碟的連續讀寫性很好,但隨機讀寫效能很差。這是因為磁頭移動至正確的磁軌上需要時間,隨機讀寫時,磁頭不停的移動,時間都花在了磁頭尋道上,所以效能不高。如下圖 在儲存小檔案 oltp資料庫應用時,隨機讀寫效能 iops 是最重要指標。學習它,有助於我們分析儲存系統的效能互瓶頸。下面我們來認識隨機讀寫...

儲存的吞吐量與IOPS

儲存系統的瓶頸,主要體現在2個方面 吞吐量與iops。名詞解釋 吞吐量英文 throughput,即單位時間內讀取或者寫入資料量的大小。iops 英文全拼 input output operations per second,即每秒進行讀寫 i o 操作的次數,多用於資料庫等場合,衡量隨機訪問的效能...

儲存IOPS與吞吐量的計算

儲存系統的瓶頸,主要體現在2個方面 吞吐量與iops。名詞解釋 吞吐量英文 throughput,即單位時間內讀取或者寫入資料量的大小。iops 英文全拼 input output operations per second,即每秒進行讀寫 i o 操作的次數,多用於資料庫等場合,衡量隨機訪問的效能...