0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Erase/Program操作對SSD讀性能的影響

SSDFans ? 來源:lq ? 2019-01-21 17:03 ? 次閱讀

Erase/Program Suspension是1y以及3D Flash提供的一個新的命令接口。該命令可以在Erase/Program操作過程中將其暫停,然后執(zhí)行其他的操作,并在某個時間重啟之前暫停的操作。這篇文章將簡述這種Suspension操作對SSD性能改善所起到的作用。

Erase/Program操作對SSD讀性能的影響

和客戶級別的SSD不同,企業(yè)級的SSD除了順序讀順序?qū)憥?,隨機讀隨機寫的IOPS等指標之外,還有一些穩(wěn)定性的指標。其中一項重要指標就是IO響應(yīng)時延的穩(wěn)定性,或一致性,英文為Latency Consistency。該指標反映IO隨測試時間的一個延遲分布情況,分布集中說明穩(wěn)定性好,IO延遲抖動小;分布離散,說明穩(wěn)定性差,IO延遲抖動大。IO延遲的抖動,和SSD中IO調(diào)度算法有密切的關(guān)系。復(fù)雜的企業(yè)應(yīng)用,不再是簡單讀寫,大部分都是比較復(fù)雜的持續(xù)混合IO。持續(xù)的寫入,勢必導(dǎo)致SSD內(nèi)GC的發(fā)生,形成數(shù)據(jù)搬移,落實到Flash具體操作就是Read/Program/Erase操作。然而當(dāng)這些SSD內(nèi)部GC產(chǎn)生的對Flash的Read/Program/Erase操作,和主機Host的IO產(chǎn)生沖突的時候,就會對IO的延遲產(chǎn)生不確定性,導(dǎo)致返回的IO延遲抖動。

GC對于寫延遲的抖動,這個是個間接的過程。累積到磁盤寫緩沖(DRAM或SRAM)的數(shù)據(jù)在寫入Flash過程中會受到GC的Read/Program/Erase影響。SSD寫緩沖如果不能完全吸收這種抖動造成的影響,就會將這種抖動傳遞到主機Host處,而表現(xiàn)為主機寫IO的抖動。圖1來自網(wǎng)絡(luò)。我們知道4k QD1的性能對Latency非常敏感,圖1展示了持續(xù)寫由于GC引發(fā)抖動導(dǎo)致寫延遲變化導(dǎo)致性能的波動。由于實現(xiàn)算法的差異,每個廠家表現(xiàn)是不一樣的。這個也能簡介反映廠家設(shè)計的功底和算法的優(yōu)劣。

圖1 SSD 4k DQ1持續(xù)寫入性能延遲表現(xiàn)(來自網(wǎng)絡(luò))

GC對于讀延遲的抖動則更加明顯。主機的讀大部分都是從Flash直接讀出。理想情況的讀延遲為Flash讀數(shù)據(jù)的延遲,這個指標對于Flash來說一般是tR,60-100us不等,加上Controller ECC解碼時間以及數(shù)據(jù)搬運到主機內(nèi)存的時間,一般來說這部分時間在10-20us。而當(dāng)一個主機host讀遇上一個主機的寫導(dǎo)致的Flash的Program或GC的Read/Program/Erase在同樣的Flash LUN上面發(fā)生沖突,情況就會變得比較糟糕。Flash Program/Erase數(shù)據(jù)的延遲tPROGt ERASE在ms級別,3D Flash這兩項指標更為惡化,tPROG達到平均2-3ms,tERASE達到平均10ms。這將意味這host的這次讀訪問的延遲將達到ms甚至10ms以上。而平均效果看在這種測試下,讀的一致性就表現(xiàn)出大的波動。

為了實際說明問題,這里舉出一種場景描述企業(yè)應(yīng)用中Erase/Program操作對實際業(yè)務(wù)造成的影響。在某種SSD上面以某種方式充分預(yù)制后,用以下模擬某種數(shù)據(jù)庫測試的FIO腳本做比較輕量Queue Depth的IO讀寫混合操作??梢娫陂L時間持續(xù)寫入的情況,引發(fā)GC產(chǎn)生,對性能產(chǎn)生負面的影響。測試的Flash為某廠的3D Flash tPROG基本為2D Flash的1.5-2倍,而tERASE平均已經(jīng)達到10ms。該3D Flash正常的tR為60-70us之間,而測試中SSD在各個場景下表現(xiàn)的平均Latency已經(jīng)達到120-140us左右,最大的讀Latency已經(jīng)到10ms以上。這正是主機Host的讀和主機寫,以及GC的Read/Program/Erase,產(chǎn)生沖突后表現(xiàn)。不難理解主機Host的某個讀,被擋在一個剛執(zhí)行的GC Erase的后面,被Delay近10ms,所表現(xiàn)的比較差的最大讀延遲。

表1某種SSD模擬數(shù)據(jù)庫場景的測試效果

Erase/Program Suspension對企業(yè)應(yīng)用的改善

1y以及3D Flash提供了一種稱為Erase Suspension和Program Suspension的命令接口。其操作方法是,當(dāng)Flash內(nèi)部Array 正在進行Erase或Program操作時,用過這種命令,暫停當(dāng)前的的Erase或Program操作。暫停成功后的Flash,狀態(tài)回到Ready狀態(tài),可以進行讀操作。而在某個時間,可以通過某些命令恢復(fù)之前被暫停的操作。

這種方式就為某些被已經(jīng)下發(fā)的Erase或Program擋住的高優(yōu)先級讀,提供了超車的可能。避免了主機Host高優(yōu)先級讀被長時間Erase或Program擋,比較大程度的改善讀的最大延遲,同時,平均讀延遲也降獲得改善。

在同樣的SSD測試項目里面,引入這種技術(shù),對比之前的測試用例,已經(jīng)能觀察到比較明顯的改善效果。這里在SSD FW里面做了一些更加智能的控制,比如在Host IO壓力一定的情況下使用Suspension技術(shù);在高優(yōu)先級IO被Erase/Program被擋的情況下,判斷Erase/Program執(zhí)行情況,評估當(dāng)前Erase/Program執(zhí)行如果完成度比較低則使用Suspension,讓后續(xù)的高優(yōu)先級讀超車。

表2某種SSD模擬數(shù)據(jù)庫場景應(yīng)用Erase/Program Suspension后的測試效果

值得注意的是除了Erase/Program Suspension對企業(yè)性能的改善,另外對掉電也有很大的幫助。當(dāng)前3D Flash的Erase時間都很長,在Dirty 掉電場景下,企業(yè)級SSD要求將Commit的寫緩沖要刷入flash。tERASE的10ms對Dirty 掉電,是非常寶貴的時間,SSD電容一般設(shè)計也就能Cover數(shù)10ms。所以能夠Suspend掉當(dāng)前耗時的Erase,執(zhí)行數(shù)據(jù)的緊急寫入是很優(yōu)必要的。

Erase/Program Suspension技術(shù)在SSD控制器應(yīng)用的考慮

由以上分析Erase/Program Suspension技術(shù)的優(yōu)勢是顯而易見的。然而Erase/Program Suspension技術(shù)操作上面SSD控制器也有一些點需要關(guān)注。

Erase/Program Suspension的控制層面在SSD的FW上控制比較困難。當(dāng)FW下發(fā)NAND操作指令到硬件的Flash controller隊列中,這個NAND操作指令基本就不受FW控制,其執(zhí)行狀態(tài)取決于當(dāng)前的flash操作狀態(tài),以及Flash Controller的調(diào)度策略。FW層面很難決定什么時候需要發(fā)起或可以發(fā)起Erase/Program Suspension。這要求SSD Controller內(nèi)部的FlashController做更加精細以及智能的控制,例如硬件的Flash Controller需要感知到當(dāng)前將要執(zhí)行IO的優(yōu)先級別,并對正在執(zhí)行的Erase/program估計完成時間,判斷是否值得做Suspension操作。

對于Erase Suspension來說可能增加Cell的PE cycles,這點也是需要考慮的。FW在系統(tǒng)層面需要決定哪些IO遇到Erase/Program擋住的時候,適合執(zhí)行Suspension,除了根據(jù)IO優(yōu)先級,還要從系統(tǒng)層度預(yù)判Suspension的收益。包括當(dāng)前GC強度,主機Host IO壓力強度。比如當(dāng)大壓力的混合讀寫,GC強度也非常大,頻繁的Suspension,也許并不適合,大壓力下Suspension對讀IO的延遲提升有限,頻繁的Suspension可能會過快消耗Cell壽命。Suspension和之后的恢復(fù)操作,需要增加FW復(fù)雜度,消耗CPU計算時間,而且可能使GC執(zhí)行不順暢,對業(yè)務(wù)造成負面影響。整體上看很可能沒有獲得所期望的優(yōu)化效果,反而增大IO的抖動和延遲。

Erase/Program Suspension是Flash廠商應(yīng)企業(yè)級客戶需求開放的一種有效改善IO延遲的新命令接口,能在一定程度上緩解3D Flash由于tPROG/tERASE增加而導(dǎo)致的問題。目前市面上已經(jīng)有一些企業(yè)SSD產(chǎn)品聲稱對Erase/Program Suspension的支持。SSD Controller要用好Erase/Program Suspension,需要HW以及FW,從SSD系統(tǒng)上面做全面的考量。能利用好這項技術(shù),帶來SSD產(chǎn)品對實際應(yīng)用的改善,也需要廠商做比較深入研究。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16367

    瀏覽量

    178122
  • SSD
    SSD
    +關(guān)注

    關(guān)注

    21

    文章

    2862

    瀏覽量

    117436
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3800

    瀏覽量

    64402

原文標題:消除企業(yè)級SSD寫抖動的利器:擦寫暫停技術(shù)

文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    極致優(yōu)化SSD并行調(diào)度

    提升廣告檢索漏斗一致性,要求在粗排階段引入更豐富的信號,這些信號的需求量已經(jīng)遠遠超出了內(nèi)存的承受能力。為此,我們考慮引入基于NVMe SSD的分層存儲。本文詳細探討了一種長尾可控的方法論,以及在這
    的頭像 發(fā)表于 09-18 09:20 ?1117次閱讀
    極致優(yōu)化<b class='flag-5'>SSD</b>并行<b class='flag-5'>讀</b>調(diào)度

    NVMe SSD性能影響因素分析

    NVMe SSD 廠商Spec給出的性能非常完美,前面也給出了NVMe SSD和磁盤之間的性能對比,NVMe SSD
    的頭像 發(fā)表于 11-13 11:39 ?1147次閱讀
    NVMe <b class='flag-5'>SSD</b><b class='flag-5'>性能</b>影響因素分析

    SSD是什么意思,什么是SSD

    、SONY等一大批國外實力廠家的不斷開發(fā)研究,SSD市場已經(jīng)全面開花了。不過不要擔(dān)心,中國第一款SSD已經(jīng)由深圳億正存儲科技公司于2007年1月1日宣布研發(fā)完成,并可以大批量進行生產(chǎn),而且與寫速度均大于
    發(fā)表于 03-25 16:20

    這些ssd的頁面大小和塊擦除大小是?

    and which size in recomded? Does anyone know the page size and the block erase size of those ssd's? TanksDirk
    發(fā)表于 11-15 11:03

    工具箱3.4.3和intel ssd 520 120bg安全擦除不起作用

    以下為原文Hello!I have new NVMe ssd 760p and "old" 520ssd need to be "secure erase
    發(fā)表于 11-26 14:16

    S32K312編程但是Erase and Program總是不成功怎么解決?

    我們是第三方編程器廠商,目前開發(fā)S32K312編程軟件。我們參考文件S32K3 Memories Guide,Erase and Program操作過程,但是Erase and
    發(fā)表于 03-14 13:36

    電池管理器件的/寫操作

    電池管理器件的/寫操作 Dallas Semiconductor 的電池管理IC 采用相同的通信協(xié)議和相同的存儲器地址不同類型的存儲器可以分別進行/寫操作本應(yīng)用筆記闡述了唯
    發(fā)表于 04-12 08:50 ?21次下載

    GD32-Colibri-F207實驗板Erase_Progra

    GD32-Colibri-F207實驗板Erase_Program,很好的GD32資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-21 10:49 ?3次下載

    NVMe SSD與SATA SSD性能對比

    老說NVMe SSD性能是SATA SSD的四倍,那到底實際體驗是怎樣的呢?
    的頭像 發(fā)表于 07-27 09:43 ?3.6w次閱讀

    不同系統(tǒng)對SSD性能是否有影響

    大家都知道SSD固態(tài)硬盤的性能很好,但是你有沒有想過,在不同的操作系統(tǒng)下,SSD性能表現(xiàn)會不會有明顯的差異呢?畢竟不同系統(tǒng)對同樣技術(shù)的支持
    的頭像 發(fā)表于 09-04 11:49 ?3857次閱讀

    影響SSD性能的因素有哪些 NVMe SSD性能解析

    NVMe SSD性能時常捉摸不定,為此我們需要打開SSD的神秘盒子,從各個視角分析SSD性能影響因素,并思考從存儲軟件的角度如何最優(yōu)化使用
    的頭像 發(fā)表于 11-05 09:47 ?8941次閱讀

    FTL算法的好壞,直接決定了SSD性能

    每擦除一次閃存塊,都會對閃存塊有磨損,因此閃存塊都是有壽命的,用PE(Program/Erase Count)數(shù)衡量。我們不能集中往某幾個閃存塊上寫數(shù)據(jù),不然這幾個塊很快就會因PE耗盡而死亡,這不是
    的頭像 發(fā)表于 10-09 16:20 ?1w次閱讀

    、寫、擦除是SSD對NAND的三大基本操作

    通過一系列的介紹和實驗驗證,我們看到了TRIM的價值和實現(xiàn)原理。在TRIM的幫助下,NVMe SSD的GC等操作效率更高,進而達到降低寫放大,提高產(chǎn)品性能和壽命的效果。
    的頭像 發(fā)表于 04-28 11:39 ?1w次閱讀

    如何FPGA內(nèi)部的RAM進行改寫操作

    存儲器是FPGA設(shè)計中的常用單元,對存儲器的操作,最基礎(chǔ)的就是讀寫操作,還有一種就是改寫操作,即先讀出存儲器中的數(shù)據(jù),對其進行修改后,再寫入存儲器。這樣的
    的頭像 發(fā)表于 09-28 16:53 ?2522次閱讀
    如何FPGA內(nèi)部的RAM進行<b class='flag-5'>讀</b>改寫<b class='flag-5'>操作</b>

    SSD硬盤對系統(tǒng)性能的影響

    隨著科技的不斷進步,存儲設(shè)備也在不斷地更新?lián)Q代。固態(tài)硬盤(SSD)作為一種新型的存儲設(shè)備,相較于傳統(tǒng)的機械硬盤(HDD),在性能上有著顯著的提升。 1. 啟動速度 SSD硬盤的啟動速度遠快于HDD
    的頭像 發(fā)表于 11-23 09:36 ?322次閱讀