磁盤 vs SSD性能
^ - ^
心血來潮,對性能數字開始越來越敏感。性能評估,方案論證,系統工程師必備技能也。
1 概述
軟件有一個特點,就是最大限度地利用硬件資源,隨着SSD,Fusion IO等各種技術的發展,可以考慮在單機層面上通過搭配不同類型的硬件來整體優化存儲系統,在性能和價格上取得一個很好的折衷。 但是要能夠設計優秀的系統,必須得知己知彼,要了解應用的負載模式並且同時應該對底層的硬件特性要有一定的瞭解。
2 硬盤 vs SSD
(1):隨機讀寫 [iops]
a) 磁盤 : 磁盤尋道+旋轉延遲基本爲10ms,讀寫帶寬爲100MB/s,以下爲4kB 64KB 1MB爲隨機讀寫數據。
理論最大iops : 1s/10ms = 100
4KB : IOPS = 1 s / ( 10ms + 4kB / 100MB/s ) = 1s/10.04ms = 99.6
64KB : IOPS = 1 s / ( 10ms + 64kB / 100MB/s ) = 1s/10.64ms = 93.6
1MB: IOPS = 1s / ( 10ms + 1MB / 100MB/s ) = 1s/20.00ms = 50
(如果繼續以M爲單位增加,可以看到,性能下降時很明顯的)
b) SSD :
SSD的性能跟具體產品的設計相關性很大,所以具體性能必須得實測,flash爲電子器件,沒有機械部件的尋道與旋轉延遲。
隨機讀 IOPS = 1s/數據傳輸時間. 理論上讀IOPS可以上10w.以下爲以網上實測數據。
隨機寫IOPS = 由於SSD採用的寫策略的不同,不能簡單得按照上述方式, 隨機寫的IOPS平均值大概爲5K.
數據:
SSD SLC
Iops 8k 隨機讀16500,Iops
8k 隨機寫11700 ---
SSD MLC Iops 8k 隨機讀7074,Iops
8k 隨機寫3065 --- 讀IOPS :1w-2w 寫iops : 5K
(一般iops的計算都以4KB的記錄來進行測試,比較符合上層應用。如果讀取記錄爲 1MB,那麼SSD的性能幾乎是線性下降的
16500/ (8K/1M) =132 ,11700/(8k/1M) = 93 ,也很差了,所以這裏要注意。)
計算:
SSD帶寬150M iops = 1s/ ( 8k/150M/s ) =1 /5* 10 E-5 = 2w
(2) :順序
目前來講,磁盤和SSD的順序讀寫的速率還在一個數量級,磁盤性價比高得多。
磁盤速率: 目前普通 SATA 速度爲 100MB/s 左右 (不過SATA II 速度能達到 3倍 300MB/s,但是很少有用 SATAII的)
SSD速率 : 大部分 讀 200MB/s 左右 寫 100MB/s 左右,寫比讀差。
3 相關資料
1:http://www.docin.com/p-138915918.html
2:http://m1350958969.spaces.eepw.com.cn/articles/article/item/32490
3:深入解析SSD中MLC與SLC的性能差異 : http://www.c-ps.net/trade/content/2009/7/12073.html
4:SSD與Fusion IO 實測隨機讀寫 IOPS: http://cccgw.itpub.net/post/9245/505790
5:NAND Flash能達到200MB/s的讀取速度: http://m1350958969.spaces.eepw.com.cn/articles/article/item/32490
6:數據庫隨機I/O優化與總結: http://qing.weibo.com/1406972894/53dcb3de330005nx.html
7:數據庫如何抵抗隨機I/O : 問題'方法`與實現:http://wangyuanzju.blog.163.com/blog/static/13029201132154010987/
8:row cache for innodb: http://blog.zephyrleaves.net/?p=88
9::SATA SATA2 速度與設計區別 http://news.watchstor.com/news-32259.htm