硬盤性能參數和IO(或stripe size)大小的選擇

硬盤性能參數與高效IO(參見:硬盤驅動器- 維基百科):
  • 轉速:當前的服務器硬盤一般都是15000轉/分鐘
  • 平均延時:平均延時就是磁道上的那段數據轉到磁頭下面需要的時間,這直接由轉速決定。比如15000轉/分鐘的硬盤,也就是每秒250轉,每轉一圈需要4毫秒,因此平均延時就是轉半圈的時間,等於2毫秒。
  • 平均尋道時間:服務器硬盤一般平均尋道時間是4毫秒。
  • 持續傳輸速率:服務器硬盤一般在80M每秒,也就是80K每毫秒(爲了方便計算,單位都用毫秒)。

因此讀取一次數據需要的時間等於:定位時間(平均延時2ms+尋道4ms)+數據傳送時間(要讀的數據/80k*ms)
IO大小
定位時間(毫秒)
傳送時間(毫秒)
數據傳輸效率
(傳送時間/總時間)
8K
6
0.1
1.6%
128K
6
1.6
21%
512K
6
6.4
52%
1M
6
12.8
68%
2M
6
25.6
81%
準則:數據傳送時間 > 5*定位時間;換句話說就是:數據傳輸效率大於80%,否則大部分時間都用在“尋道定位”上顯然是不合算的。
(我們回想一下十年前的硬盤技術:容量大約是1.2GB;轉速大約在5400轉/分鐘;持續傳輸速率大約在10M每秒;平均尋道時間大約在15毫秒。)
    硬盤的技術進步帶給持續傳輸速率好處要遠大於平均尋道時間的好處,因此差不多越高級的硬盤“IO大小”要設定的越大才好。


RAID 0,或者RAID 10的stripe size計算公式:

RAID的技術介紹:
  • stripe width(條帶寬度):RAID中的磁盤數,就是組成這個stripe的磁盤數。如,4個磁盤組成的RAID 0,條帶寬度就是4。
  • stripe depth(條帶深度):單塊磁盤上條帶的大小,有時也稱爲stripe unit。
  • stripe size(條帶大小):stripe depth*stripe width。
  • 還有一種說法:有時也稱爲block size塊大小, chunk size簇大小, stripe length條帶長度,granularity粒度,單塊磁盤上的每次IO的最小單位。

RAID條帶大小的另一個計算公式爲:(參見:Oracle and RAID Usage
條帶大小 = (0.25*平均定位時間*數據傳輸速率*(併發用戶數-1)*1.024)+0.5K
平均定位時間=(平均延時+平均尋道時間)  (milliseconds);數據傳輸速率單位爲:Megabyte/sec;1.024 = 1s/1000ms*1024K/1M (單位轉換因子)
舉例來說,磁盤尋道時間是6ms,傳輸速率80MB,且有20個併發用戶的條帶大小應該爲:
(0.25*6*80*19*1.024)+0.5=2335.22K(差不多2M)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章