為什麼緩解延遲異常值如此重要?
在 2015 年的一篇文章中,Meta 介紹了 Facebook 使用的社交圖譜的一些實際執行細節。1 作者從一個假設的案例開始:Alice 發表了兩篇貼文,朋友 Bob 和 Carol 各自都留言並按讚。當 Alice 拿起手機並開啟 Facebook 時,動態消息需要識別她的朋友是誰以及他們的貼文是什麼,並設定查詢以通知 Alice,Bob 和 Carol 在她的貼文按讚並留言。
首先,我們考慮一個解決方案(圖 1),其中一個工作人員執行 n 個子查詢。在這種情況下,執行時間將為 O(n),並大致等於平均(而非最壞情況)查詢延遲。
超大規模機構採取不同方法(圖 2)。他們讓 n 個工作人員每人執行一次查詢,並彙整 n 個結果。在這種情況下,執行時間為 O(1),但執行時間為 n 個節點中任何一個節點的最糟糕情況延遲。
Meta 文章進一步談到,在數千個子查詢中,有多個分叉/聯結子查詢與數十個深層關鍵分叉聯結路徑時,情況其實更糟(圖 3)。即使是單一的異常值(在本例中為 99.9%)也會影響幾乎所有查詢的效能。此結果證明至少需要 99.99% 的延遲,甚至 99.9999% 或 99.99999% 的延遲(圖 6 顯示 99.9999% 的延遲)。
這種情況發生的範圍遠遠超出 Meta 及其社交圖譜,並且包括許多資料庫密集型應用程式。美光的另一篇部落格討論了 YCSB 資料庫應用程式在不同儲存解決方案(包括美光 7450)中的情況。2,3
至少,最好專注於具有寫入「風暴」的讀取密集型工作負載(例如 70% 讀取、30% 寫入),並且進行深度佇列以確保 NAND 陣列和控制器承受全部壓力。針對各種壓力檢查讀取尾端延遲也很重要,因為這些延遲將更接近典型的日常伺服器體驗。
導致延遲變化和緩解的原因為何?
使用 CPU 架構的命名法,SSD 既是深度管線化(許多階段)又是超級擴充器(許多平行階段)。關注管線停滯是 CPU 和 SSD 效能的關鍵。就 SSD 而言(圖 4),管線停滯可能來自多個來源,我們將在下文考慮。
當晶粒或 NAND 匯流排忙於處理另一個管線階段的請求時,嘗試讀取資料會對此理想化延遲造成一些最低階的影響,這種情況通常稱為平面、晶粒或通道碰撞。當讀取與讀取發生衝突時,通常會讓管線停滯在稍後的讀取上並先完成正在進行的讀取。
整合主機寫入(本例中為 30%)及其關聯的垃圾收集不僅會產生額外的讀取,還會對 NAND 進行程式設計和清除。程式延遲可能是 NAND 讀取的 5 到 10 倍,而 NAND 清除可能比 NAND 讀取高一個數量級。圖 5 以幽默的方式展示了 GC 對主機活動的影響,而圖 6 詳細說明了在沒有暫停的情況下讀取管線停滯的情況。
這是管線「暫停」程式及清除的地方,允許主機讀取服務。NAND 元件工程師、系統單晶片工程師和韌體工程師密切合作,發明了一種程式設計和清除暫停功能來有效緩解這些延遲。今天,我們看到在 99.999% 的情況下,對上述工作負載的延遲影響遠小於 2 毫秒,這一結果至少好了五倍。
如何解決管線停滯問題?
讓我們回到圖 5 所示的高速公路。具有深度佇列讀取和寫入以及相關垃圾回收功能的 SSD 就像多車道高速公路。高速公路上的延遲異常值(又稱交通壅塞)與 SSD 中的延遲異常值非常相似。透過與防止高速公路壅塞的類比,我們能夠理解一些延遲異常值策略。
類比 1:不要讓貨運列車堵在繁忙的高速公路上(我不是開玩笑)
顯然,一列貨運列車在尖峰時段堵住繁忙高速公路上的所有車道將導致交通壅塞(圖 7)。SSD 設計者花了不少時間才充分認識到這一事實。儘管這似乎顯而易見,但 OCP 資料中心 NVMe™ SSD 規範不只一次特別指出不要讓貨運列車穿越繁忙的高速公路,這可能源自於 OCP 作者先前設計的經驗:
- 智慧 IO 不應阻塞任何主機 IO(SLOG-6)
- 其他定期監控的日誌(LMLOG-4 和 TEL-5)應將 IO 阻塞限制在約 1 mS 的小數字。
類比 2:採用高速公路匝道管制
防止交通壅塞的另一個有用工具是高速公路上的匝道儀表(圖 8)。我們可能都經歷過這種方法,它看起來與提高生產力的方法背道而馳。美國交通部的資料顯示,交通時間(延遲)減少了 20% 或更多。5SSD 遵循相同的理念,防止壅塞導致延遲異常值。我們不僅限制寫入,還限制整體 I/O(包括垃圾收集),以確保最佳效能,而不會因 SSD 上的內部流量堵塞而出現令人沮喪的延遲。
為什麼美光致力於提供同類最佳的尾端延遲緩解解決方案?
如前所述,六到七年前,在程式和清除暫停出現之前,業界一直在努力解決延遲異常問題。這種方法加上入口節流,以及 NAND 和控制器互動的最佳化,讓美光 SSD(圖 9)發展到今天我們認為是同類產品中最佳的程度。
因此,下次您拿起行動裝置並瀏覽社群媒體時,請享受回應能力方面絕佳的終端使用者體驗。感嘆數千台伺服器執行數千個深度分叉聯結的平行查詢的奇蹟。即使您運行的伺服器農場規模要小得多,擁有一致且可預測的效能也是確保為客戶提供一致服務的關鍵。這種效能正是美光主流資料中心 SSD 的强項。
1大規模採用更強一致性所面臨的挑戰,Meta Research 2015
2在工作負載測試中找出延遲異常值 | 美光 2023 年
3 比較美光 7450、Samsung PM9A3 和 Solidigm D5-P5430 | 美光 2023 年
4 透過 I/O 確定性避免 SSD 中代價高昂的讀取延遲變化,FMS 2017,Wells
5 匝道儀表:一種行之有效、具成本效益的營運策略,美國交通部 2014 年