看了篇文章,突然想寫點磁盤IO的東西,也算是對磁盤的一點點總結。
以下以理論為主,輔助結合實際情況。不明白這句話的出去。
今年是2018年,目前市場上早已經沒有國產的硬盤,以前的長城、易拓早早的被拍死在沙灘上,話說硬盤的制造難度僅次於CPU。現在好多廠商也被不斷的兼並收購也是因為垂直磁記錄這道題太難了,不會做。
下面上圖看看磁盤技術
現在市面上的磁盤安裝轉速來說有5400、7200、10000、15000轉/分,這里只討論3.5英寸的硬盤。
IOPS和帶寬是硬盤的主要參數之一,那這些硬盤的IOPS和帶寬都是多少呢?我們不考慮實際情況的計算一下:
IOPS(IO per second)是硬盤最重要的參數之一,存儲系統一直在優化的一個參數。那么不同的硬盤IOPS是多少?怎么計算呢?
先寫結果
5400 RPM的硬盤IOPS= 7200 RPM的硬盤IOPS=80 10000 RPM的硬盤IOPS=147 15000 RPM的硬盤IOPS=199
*以上數據為理論計算值,理論很豐滿,現實很骨感。
如何計算的呢?我們以10000 RPM的硬盤為例進行說明
磁盤在接收到一個IO請求的時候需要3步來完成:
1.將磁頭轉到相應的磁道=尋址時間
我們沒有計算尋址時間的方法,只有原廠商提供的數據,HGST的HUC101890CS420x提供了Seek time約為3.8ms
2.等待相應的扇區轉到磁頭下方開始讀取=潛伏時間latency time。
最好的情況是磁頭轉到相應的磁道,扇區正好在轉到磁頭下方,此時旋轉延時最小為0ms
最差的情況是磁頭轉到相應的磁道,扇區剛轉過磁頭下方,此時旋轉延時最大,為60000ms/10000轉=6ms
兩者取平均值為3ms
3.數據傳送時間
1個4k的文件所需的數據傳輸時間=4K / 數據傳輸率
我們參考原廠商的HUC101890CS420x硬盤的數據傳輸率Sustained transfer rate (MB/s, typical)為146 to 247,在這里我們取200MB/s
則得出4k文件的傳輸時間=4k / 200MB/s=0.02ms
經過3步之后,數據就真正的寫在了硬盤上,那所花費的時間=3.8ms+3ms+0.02ms=6.82ms
硬盤操作一個IO需要6.82ms,那么1s的時間能夠操作的IO=1s/6.82ms=146.7次,所以我們10000RPM的硬盤IOPS即為147
同理可得以下計算過程:
7200轉硬盤我選取HUS726TxTAL42yz,此硬盤尋址時間seek time為8.3ms
數據傳輸率為up to 233,按照200MB/s算吧
IOPS=1s / [ 8.3ms+(60000/7200/2)ms+0.02ms ]=1s / 12.49ms = 80
15000轉的硬盤我選取HUC156060CS420x,此硬盤的尋址時間seek time為3ms
數據傳輸率為189-271,按照200MB/s算吧
IOPS=1s / [ 3ms+(60000/15000/2)ms+0.02ms ]=1s / 5.02ms = 199
*本文中硬盤HUC101890CS420x的參考數據來源:http://www.hgst.com/sites/default/files/resources/USC10K1800_ds.pdf