3.2 IO Pattern對性能的影響
IO Pattern會對SSD的性能產(chǎn)生嚴(yán)重影響,主要表現(xiàn)在如下幾個方面:
1, 不同的IO Pattern會產(chǎn)生不同的寫放大系數(shù),不同的寫放大系數(shù)占用后端NAND Flash帶寬不同。當(dāng)前端應(yīng)用對SSD采用完全順序的方式進行寫入時,此時是最佳的IO Pattern,對于SSD而言寫放大系數(shù)接近1,SSD內(nèi)部的背景流量基本可以忽略,前端性能達到最佳。在實際應(yīng)用中,很難采用這種完全順序的數(shù)據(jù)寫模型,但可以通過優(yōu)化逼近順序?qū)懭搿?/p>
2, 不同請求大小的IO之間會產(chǎn)生干擾;讀寫請求之間會產(chǎn)生干擾。小請求會受到大請求的干擾,從而導(dǎo)致小請求的延遲增加,這個比較容易理解,在HDD上同樣會存在這種情況。由于NAND Flash介質(zhì)存在嚴(yán)重的讀寫不對稱性,因此讀寫請求之間也會互相干擾,尤其是寫請求對讀請求產(chǎn)生嚴(yán)重的性能影響。
3.2.1 順序?qū)懭隤attern對SSD性能優(yōu)化的奧秘
在針對閃存系統(tǒng)的設(shè)計中,需要考慮IO Pattern對性能產(chǎn)生的影響,通過軟件的優(yōu)化來最優(yōu)化SSD的使用。在實際應(yīng)用中完全順序?qū)懭氲腎O Pattern基本上是不存在的,除非用作順序?qū)懭氲娜罩驹O(shè)備。對于順序?qū)懭雰?yōu)化性能這個結(jié)論,需要從SSD內(nèi)部實現(xiàn)來深入理解,知道根源之后,可以采用合理的方式來逼近順序?qū)懭氲哪J剑瑥亩顑?yōu)化SSD的性能。
SSD內(nèi)部采用log-structured的數(shù)據(jù)記錄模式,并發(fā)寫入的IO數(shù)據(jù)按照時間順序匯聚成大數(shù)據(jù)塊,合并形成的大數(shù)據(jù)塊以Page stripe的方式寫入NAND Flash。多個Page stripe會被寫入同一個GC單元(Chunk orSuperblock),當(dāng)一個GC單元被寫完成之后,該GC單元進入sealed模式(只讀),分配新的GC單元寫新的數(shù)據(jù)。在這種模式下,如果多個業(yè)務(wù)的數(shù)據(jù)流并發(fā)隨機地往SSD中寫入數(shù)據(jù),那么多個應(yīng)用的數(shù)據(jù)就會交錯在一起被存儲到同一個GC單元中。如下圖所示,不同應(yīng)用的數(shù)據(jù)生命周期不同,當(dāng)需要回收一個GC單元的時候,會存在大量數(shù)據(jù)的遷移,這些遷移的數(shù)據(jù)就會形成寫放大,影響性能和使用壽命。
不同應(yīng)用的數(shù)據(jù)交錯存儲在同一個GC單元,本質(zhì)上就是不同冷熱程度的數(shù)據(jù)交錯存儲的問題。從GC的角度來講,相同冷熱程度的數(shù)據(jù)存儲在同一個GC單元上是最佳的,為此三星推出了Multi-stream SSD,該SSD就允許不同應(yīng)用的數(shù)據(jù)存儲到不同的Stream單元(GC單元),從而提升GC效率,降低寫放大。Multi-stream是一種顯式的設(shè)計方式,需要更改SSD接口以及應(yīng)用程序。
從IO Pattern的角度考慮,可以通過順序大塊的方式也可以逼近類似的效果。假設(shè)操作SSD只存在一個線程,不同的應(yīng)用都采用大數(shù)據(jù)塊的方式寫入數(shù)據(jù),那么在一個時間片段內(nèi)只存在一個應(yīng)用的數(shù)據(jù)往SSD中寫入數(shù)據(jù),那么在一個GC單元內(nèi)存儲的數(shù)據(jù)會變得有序和規(guī)則。如下圖所示,采用上述方法之后,一個GC單元內(nèi)存儲的數(shù)據(jù)將會變得冷熱均勻。在GC過程中會大大減少數(shù)據(jù)的搬移,從而減少背景流量。
在實際應(yīng)用中,上述IO Pattern很難產(chǎn)生,主要是應(yīng)用很難產(chǎn)生非常大粒度的請求。為此在存儲系統(tǒng)設(shè)計過程中,可以引入Optane高性能存儲介質(zhì)作為SSD的寫緩存。前端不同業(yè)務(wù)的寫請求首先寫到Optane持久化介質(zhì)中,在Optane持久化介質(zhì)中聚合形成大數(shù)據(jù)塊。一旦聚合形成大數(shù)據(jù)塊之后,再寫入SSD,通過這種方式可以最大程度地逼近SSD順序?qū)懭脒^程,提升SSD的性能和使用壽命。
3.2.2 讀寫沖突Pattern對性能的影響
如下圖所示,NAND Flash介質(zhì)具有很強的讀寫不對稱性。Block Erase和Page Program的延遲會遠(yuǎn)遠(yuǎn)高于Page Read所耗費的時間。那么在這種情況下,如果read請求在同一個Flash Channel上和Erase、Program操作沖突,那么read操作將會被Erase/program操作影響。這是在讀寫混合情況下,讀性能會受到影響的重要因素。
在實際應(yīng)用過程中,經(jīng)常會發(fā)現(xiàn)應(yīng)用的測試結(jié)果和SSD Spec對不上,會比Spec給出的值要來的低。Spec給出的值通常為純讀或者純寫情況下的性能指標(biāo),在讀寫混合的場景下,性能表現(xiàn)和Spec給出的值就會存在非常大的出入。
對于不同的SSD,通過測試可以發(fā)現(xiàn)在讀寫混合情況下的性能表現(xiàn)差距會比較大。在SSD處于穩(wěn)態(tài)條件下,應(yīng)用隨機讀的情況下,如果引入一個壓力不是很大的順序?qū)懀敲磿l(fā)現(xiàn)不同SSD的抗干擾能力是不同的。有些SSD在寫干擾的情況下,讀性能會急劇下降,延遲快速上升,QoS性能得不到保證。下圖是兩個SSD在相同情況下的測試結(jié)果,從結(jié)果來看,有些SSD的抗寫干擾能力比較強,讀性能不會急劇下降。
為什么有些SSD會具備比較強的抗寫干擾能力呢?其中的奧秘就在于SSD內(nèi)部的IO調(diào)度器。IO調(diào)度器會對write、read 和Erase請求進行調(diào)度處理,該調(diào)度器算法的不同就會表現(xiàn)出不同的抗干擾能力。目前很多NANDFlash可以支持Program/Erase Suspension的功能,在IO調(diào)度處理的過程中,為了提升讀性能,降低讀請求延遲,可以采用Suspension命令對Program/Erase命令暫停,對read請求優(yōu)先調(diào)度處理。
讀寫沖突是SSD內(nèi)部影響IO QoS的重要因素。在SSD內(nèi)部通過IO調(diào)度器的優(yōu)化可以提升SSD性能的QoS能力,但是還是無法與存儲軟件結(jié)合來協(xié)同優(yōu)化QoS。為了達到最佳的SSD性能QoS,需要關(guān)注Openchannel技術(shù)。Openchannel其實只是一種軟硬件層次劃分的方法,通常來講,SSD內(nèi)部的邏輯可以劃分為面向NAND資源的物理資源管理層以及面向數(shù)據(jù)布局的資源映射層。物理資源管理由于和NAND Flash密切相關(guān),因此可以放到SSD內(nèi)部。
傳統(tǒng)的NVMe SSD需要對外暴露標(biāo)準(zhǔn)的塊設(shè)備接口,因此需要在SSD內(nèi)部實現(xiàn)資源映射層。從端至端的角度來看,資源映射層可以與存儲軟件層結(jié)合起來,為此將資源映射層從SSD內(nèi)部剝離出來,集成至存儲軟件層。一旦資源映射層從SSD內(nèi)部剝離之后,需要定義一個新的SSD接口,其中的一種接口方式就是Openchannel。
盤古分布式存儲針對SSD QoS問題進行了大量研究,提出了Object SSD的概念,Object SSD也是一種新的SSD接口方式,其采用對象方式對SSD進行讀寫刪操作,每個對象采用Append write操作方式。這種接口方式可以很好的與分布式存儲無縫結(jié)合。采用Object SSD之后,SSD內(nèi)部的大量工作被簡化,IO的調(diào)度會更加靈活,存儲軟件與SSD協(xié)同配合,達到IO性能的最優(yōu)化,以及QoS的最大化。
4 SSD寫性能分析模型
SSD內(nèi)部的數(shù)據(jù)流分成兩大類,一類為前端用戶數(shù)據(jù)流;另一類為內(nèi)部背景數(shù)據(jù)流。前端用戶數(shù)據(jù)流和背景數(shù)據(jù)流會匯聚成NAND Flash后端流量。當(dāng)背景數(shù)據(jù)流不存在時,NAND Flash帶寬會被用戶數(shù)據(jù)流全部占據(jù),此時SSD對外表現(xiàn)的性能達到最佳。當(dāng)SSD具有較大寫放大時,會產(chǎn)生很大的背景數(shù)據(jù)流,背景流會搶占NANDFlash帶寬,導(dǎo)致前端用戶IO性能降低。為了穩(wěn)定前端IO性能,在SSD內(nèi)部的調(diào)度器會均衡前端和背景流量,保證前端性能的一致性。背景流量的占比反應(yīng)了SSD的寫放大系數(shù),因此,站在NAND Flash帶寬占用的角度可以分析SSD在穩(wěn)態(tài)情況下的性能。
下圖是Intel P4500和Samsung PM963隨機寫延遲和推導(dǎo)公式之間的對比。結(jié)果非常吻合。
由此可以推出,隨機寫性能由SSD內(nèi)部后端帶寬以及寫放大系數(shù)來決定。因此,從存儲軟件的角度出發(fā),我們可以通過優(yōu)化IO Pattern的方式減小寫放大系數(shù),從而可以提升SSD的隨機寫性能。
5 小結(jié)
閃存存儲技術(shù)正在飛速發(fā)展,閃存介質(zhì)、SSD控制器、存儲系統(tǒng)軟件、存儲硬件平臺都在圍繞閃存日新月異的發(fā)展。閃存給數(shù)據(jù)存儲帶來的價值顯而易見,數(shù)據(jù)中心閃存化是重要發(fā)展趨勢。NVMe SSD性能受到很多因素的影響,在軟件層面可以通過IO Pattern優(yōu)化SSD的性能,使得整體存儲系統(tǒng)的性能達到最佳。
審核編輯:劉清
-
QoS
+關(guān)注
關(guān)注
1文章
136瀏覽量
44889 -
SSD
+關(guān)注
關(guān)注
21文章
2887瀏覽量
117852 -
Nand flash
+關(guān)注
關(guān)注
6文章
241瀏覽量
39986 -
HDD
+關(guān)注
關(guān)注
0文章
147瀏覽量
27527
原文標(biāo)題:NVMe SSD性能影響因素一探究竟(下)
文章出處:【微信號:架構(gòu)師技術(shù)聯(lián)盟,微信公眾號:架構(gòu)師技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論