但你是否考慮過存儲性能的浴缸型曲線問題呢?
如圖2,左軸線I/O讀取達到100%,右軸線I/O寫入達到100%。在任何一種極端情況下,存儲性能的表現(xiàn)都很好。然而,在運行混合工作負載的中間段,性能下降,形成了典型的“浴缸型曲線”。
曲線呈現(xiàn)的深度取決于存儲陣列的有效性。如圖所示,對于每個性能指標(IOPS,吞吐量,延遲),曲線的最低點可能是從100%讀取到100%寫入軸線內(nèi)的任何位置。
問題是——你知道你的曲線下降到什么程度,這與供應商承諾的性能相比如何?
關于市場對存儲性能的表述
通常,IOPS引用的塊大小是盡可能小的,因為它會生成更多的單個I/O操作——一般在高隊列深度。而吞吐量則相反,因為更大的塊能獲得更好的吞吐量。當然,供應商希望以最佳方式表現(xiàn)其產(chǎn)品性能,這意味著相應地調(diào)整測試結(jié)果。
圖2:存儲性能浴缸曲線
延遲如何?特別是對于存儲陣列,你會看到類似“通?!?,“平均”,“最好”這樣的詞,但其并未表達一個較為中肯的指標。
為什么性能會發(fā)生變化?
是什么導致了性能問題?我們來專注一下閃存以及傳統(tǒng)介質(zhì)的運作方式。利用SAS/SATA協(xié)議,只有一個隊列處理I/O.對處理全讀取請求,過程簡單,控制器可以進行順序處理,如果正在訪問閃存的同一部分,還可以在重新排序中性能有所改善。還有多個對應分布式I/O的后端通道,也可以獲得一些好處。
全閃存IOPS
而如果是處理100%的寫入流量,過程會很復雜。因為每次寫入意味著至少要更新一次閃存頁面。有時還必須擦除整個閃存塊(多個頁面),這意味著移動與合并閑置塊中的頁面。此外還要考慮磨損均衡等其它因素,因此100%寫入能力通常低于100%讀取能力,雖然兩者都受益于主板DRAM進行數(shù)據(jù)緩存(由于這一點,某些磁盤可能會顯示單隊列深度下更高的寫入性能)。
混合I/O
在我們開始接觸混合I/O時,會發(fā)現(xiàn)數(shù)字低于讀取或?qū)懭胄阅?。在這一點上,是介質(zhì)的架構(gòu)成為了阻礙。我們之前說過,閃存是以塊和頁面寫入的,因此寫入操作是直到寫入完成都可能會延遲(或限制)同一塊/頁面的讀取。而對于SAS/SATA,一切都是通過前端連接進行,仍然只處理單個隊列。
緩解方案
介質(zhì)與陣列供應商顯然已經(jīng)實施了一些解決方案來打破這些限制。在介質(zhì)方面,這可能意味著更多的超量配置(over-provisioning)。定制存儲設計為我們帶來了嘗試克服可變閃存性能問題的一些產(chǎn)品,以提供更一致性的主機I/O體驗。和構(gòu)建軟件定義或HCI型解決方案相比,這是購買全閃存系統(tǒng)的固有優(yōu)勢之一。
NVMe
隨著我們轉(zhuǎn)向基于NVMe的陣列和存儲級內(nèi)存解決方案,充分利用介質(zhì)的能力變得更加重要。因為NVMe SSD和英特爾傲騰驅(qū)動器都能以非常低的延遲實現(xiàn)大規(guī)模并行計算。如果你的存儲陣列無法優(yōu)化介質(zhì),那么浴缸曲線將會有顯著降低。
總結(jié)
全閃存供應商的潛在客戶需要詢問整個讀取/寫入比率范圍內(nèi)的性能,而不僅僅是極端情況。
當然,不要忘記混合工作負載環(huán)境會生成一系列不同的I/O配置文件,包括順序/隨機,大的塊和突發(fā)/流媒體(stream)型流量的組合。如果你想要交付平臺,最好讓(潛在)供應商向你展示一系列真實的性能數(shù)字,最好與實際應用關聯(lián),例如數(shù)據(jù)庫,虛擬化或分析等。