記得去年在美國舉行2014秋季IDF期間,存儲圈內一位英文好的首席專家曾表示:在中國辦的IDF上講的內容,基本就是半年前美國講過的那些,沒啥新東西。
我覺得也有些例外的情況,那就是Intel在這半年之中發布了新產品。比如當年第一代Xeon E5——畢竟IDF上講的都是公開的東西,像PCIe(最早叫過3GIO,還有人記得這個名字嗎?)之類的規范、標準可以預熱宣傳,但具體產品是不能在這個場合上提前泄露的。
所以,在本屆IDF之前我查看技術課程目錄時,就多長了個心眼——有哪些新鮮東西?我看到了不久前正式發布的Xeon Processor D相關的課程,這款BGA封裝的SoC處理器已經不再需要PCH南橋,特別適合存儲控制器這樣的嵌入式平臺設計。然而,當我在今天下班再次刷新IDF網頁時,卻看不到這一節課程了??
類似消失的情況,好像還有一節ServerSAN相關的。
從去年春季IDF開始,Intel就將主辦地從持續了多年的北京搬到深圳,意圖也很明顯——Intel近幾年的戰略重點在移動端,無論平板還是手機處理器,這些產品的制造集中于廣東。另一方面,企業級市場Intel絕對優勢,而且服務器和存儲在中國市場的所占全球的比例,顯然不如個人消費產品(畢竟十幾億人擺在那里)。
我無意猜測Xeon D等技術課程由于什么原因被取消,只能對此表示遺憾!畢竟它應該是本屆IDF數據中心特別是存儲領域為數不多的新內容。
吐槽歸吐槽,技術的東西還是要寫。我就給大家分享下今天看pdf資料的心得,其中也加入了我塵封多年的測試結果,作為一個花絮吧。
數據中心SSD市場分析、Intel要退出?
這張slide列出了2014年第四季度調研報告中的3項數字:服務器內配置的SSD數量——到2018年之前預計增長幅度略有放緩;平均容量上升則比較快——增幅比硬盤快,這里得益于半導體制程的發展和3D NAND閃存等技術;但數據中心級SSD的價格不斷走低——2014年已經開始降到每GB 1美元以下,我覺得這個應該針對DC S3500這類出貨量最大的SATA型號——也是Intel目前占優的領域,PCIe Flash還沒有這么便宜。
盡管在單季度11億美金的市場中總共占據了40%,但這兩天我還是聽到Intel可能要退出SSD領域的傳言。是三星發起價格戰了?還是美光要自己玩?
擲色子理論:隊列深度與IOPS不是完全線性
這張的slide提到了“色子理論”。我想了一種比較極端的情況,如果擲2枚硬幣(因為只有2個面),那么它們不同面朝上的平均比例正好是50%。當閃存顆粒的數量為6時,并發的6個隨機IO操作平均只能命中其中4個,而達不到理想中的完全并發效果。
上面這個圖表只是一個理論的假設,NAND并發達到50時,IOPS就會達到單個NAND的50倍嗎?
實測情況是,這條“加載曲線”在隊列深度(也就是主機訪問并發度)256時才達到單個NAND顆粒50倍左右的IOPS,而50隊列深度實際產生的并發效果約等于32。
這里開始告訴大家“防忽悠”了,SSD廠商宣傳的最高IOPS一般都是用各種極限測試方法壓出來的,而更多典型應用發生在1-64隊列深度這個區間。
那么以上2種SSD哪個更好呢,如果只看廠商給的spec數字應該是綠色曲線的高,而大部分實際應用中藍色表現應該更好吧。
如上表,Hadoop、TPC-C、HPC以及ZFS文件系統寫日志等產生的隊列深度都不算高(10以內最多);只有TPC-H例外,甚至有相當一部分比例達到260以上。
平均延時與最大延時
隊列深度增長,帶來的一個副作用就是延時的上升。SSD在這方面不是明顯優于硬盤嗎?這并不代表在所有特定環境下SSD都能100%滿足延時需求,反而由于寫放大/垃圾回收帶來的抖動引入了需要關注的新參數。
這里我列出一個幾年前測試機械硬盤的情況,2.5寸的希捷Savvio 15K.2已經超出了人們一般的經驗值——15000轉硬盤180 IOPS,因為它的純機械平均訪問時間已經低于5ms(平均尋道+旋轉等待)。我們可以通過隊列深度(而不是短擊)來將它的IOPS提高到500以上——盡管沒有SSD顆粒并發度的效果好,但代價是延時以接近1倍的幅度不斷翻番,實際環境中20ms以上許多應用已經無法接受了。
更多的NCQ優化硬盤尋道的原理在這里不詳細討論,留給大家思考吧,我們還是回過頭來看SSD。
前面只列出了平均延時,而最大延時在許多情況下也會影響用戶體驗。閃存在這方面的一致性就沒有硬盤好了,還記得Oracle的redo log嗎?
舉個例子,某SSD的IOPS穩定性很好,隊列深度64時穩定在20萬,但響應時間無法控制到這個水平——如右圖,90%以上在1ms以內,大約99.99999%在10ms以內,但還是有極少的比例超過了10ms。
當隊列深度增加到128,只有大約99.999%的I/O延時在10ms以內,這一點比64隊列深度差了2個數量級。
現在回到前面那2款對比的SSD,我理解是在A表現更出色的區域,由于綠色曲線(SSD A)達到同樣IOPS需要更高的隊列深度,所以延時就相應更高;反之亦然。
讀寫混合效應:實測低于理論
真實應用下往往不是100%讀或者寫,而是混合訪問。我們看到這款SSD在隊列深度較低時寫IOPS比讀高,應該是寫緩存的作用,一定程度上觸發了NAND顆粒的并行操作。
以這個簡單的公式計算混合IOPS可以嗎?當然不行,因為70%的讀操作要“等待”那30%的寫操作按比例地完成。
這個公式應該是對的,然而實際情況就是這樣嗎?
答案是No,實測結果低于前面的2條曲線,大概是SSD的閃存讀寫操作之間有一些干擾吧。