- 轉速:當前的服務器硬盤一般都是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% |
(我們回想一下十年前的硬盤技術:容量大約是1.2GB;轉速大約在5400轉/分鐘;持續傳輸速率大約在10M每秒;平均尋道時間大約在15毫秒。)
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)