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