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

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

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

NVMe SSD性能影響因素分析

架構(gòu)師技術(shù)聯(lián)盟 ? 來(lái)源:架構(gòu)師技術(shù)聯(lián)盟 ? 2023-11-13 11:39 ? 次閱讀

NVMe SSD 廠商Spec給出的性能非常完美,前面也給出了NVMe SSD和磁盤之間的性能對(duì)比,NVMe SSD的性能的確比磁盤高很多。

但在實(shí)際應(yīng)用過程中,NVMe SSD的性能可能沒有想象中的那么好,并且看上去不是特別的穩(wěn)定,找不到完美的規(guī)律。和磁盤介質(zhì)相比,SSD的性能和很多因素相關(guān),分析SSD的性能影響因素,首先需要大體了解SSD構(gòu)成的主要部分。

如下圖所示,其主要包括主機(jī)CPU、PCIe互連帶寬、SSD控制器及FTL軟件、后端NAND Flash帶寬、NAND Flash介質(zhì)。影響SSD性能的主要因素可以分成硬件、軟件和客觀環(huán)境三大部分,具體分析如下。

wKgZomVRmn-AfU6dAACdsObpUWw092.png

1, 硬件因素

a) NAND Flash本身。不同類型的NAND Flash本身具有不同的性能,例如SLC的性能高于MLC,MLC的性能優(yōu)于TLC。選擇不同的工藝、不同類別的NAND Flash,都會(huì)具有不同的性能。

b) 后端通道數(shù)(CE數(shù)量)及總線頻率。后端通道數(shù)決定了并發(fā)NAND Flash的數(shù)量,決定了并發(fā)能力。不同的SSD控制器支持不同數(shù)量的通道數(shù),也決定了SSD的后端吞吐帶寬能力。NAND Flash Channel的總線頻率也決定了訪問Flash的性能。

c) SSD控制器的處理能力。SSD控制器中會(huì)運(yùn)行復(fù)雜的FTL(Flash Translation Layer)處理邏輯,將邏輯塊讀寫映射轉(zhuǎn)換成NAND Flash 讀寫請(qǐng)求。在大數(shù)據(jù)塊讀寫時(shí),對(duì)處理器能力要求不是很高;在小數(shù)據(jù)塊讀寫時(shí),對(duì)處理器能力要求極高,處理器能力很容易成為整個(gè)IO系統(tǒng)的性能瓶頸點(diǎn)。

d) SSD控制器架構(gòu)。通常SSD控制器采用SMP或者M(jìn)PP兩種架構(gòu),早期的控制器通常采用MPP架構(gòu),多個(gè)小處理器通過內(nèi)部高速總線進(jìn)行互連,通過硬件消息隊(duì)列進(jìn)行通信。內(nèi)存資源作為獨(dú)立的外設(shè)供所有的處理器進(jìn)行共享。這種架構(gòu)和基于消息通信的分布式系統(tǒng)類似。MPP架構(gòu)的很大優(yōu)勢(shì)在于性能,但是編程復(fù)雜度較高;SMP架構(gòu)的性能可擴(kuò)展性取決于軟件,編程簡(jiǎn)單,和在x86平臺(tái)上編程相似。不同的控制器架構(gòu)會(huì)影響到SSD的總體性能,在SSD設(shè)計(jì)時(shí),會(huì)根據(jù)設(shè)計(jì)目標(biāo),選擇不同類型的SSD控制器。

e) 內(nèi)存支持容量。為了追求高性能,SSD內(nèi)部的映射資源表會(huì)常駐內(nèi)存,映射表的內(nèi)存占用大小是盤容量的0.1%,當(dāng)內(nèi)存容量不夠大時(shí),會(huì)出現(xiàn)映射表?yè)Q入換出的問題,影響到性能。

f) PCIe的吞吐帶寬能力。PCIe前端帶寬體現(xiàn)了SSD的前端吞吐能力,目前NVMe SSD采用x4 lane的接入方式,上限帶寬為3GB/s,當(dāng)后端NAND Flash帶寬和處理器能力足夠時(shí),前端PCIe往往會(huì)成為性能瓶頸點(diǎn)。NANDFlash具有很高的讀性能,目前來(lái)看,SSD的讀性能在很大程度上受限于PCIe總線,因此需要快速推進(jìn)PCIe4.0標(biāo)準(zhǔn)。

g) 溫度對(duì)性能造成影響。在NAND Flash全速運(yùn)行的情況下,會(huì)產(chǎn)生較大的散熱功耗,當(dāng)溫度高到一定程度時(shí),系統(tǒng)將會(huì)處于不正常的工作狀態(tài),為此,SSD內(nèi)部做了控溫系統(tǒng),通過溫度檢測(cè)系統(tǒng)來(lái)調(diào)整SSD性能,從而保證系統(tǒng)溫度維持在閾值之內(nèi)。調(diào)整溫度會(huì)犧牲性能,本質(zhì)上就是通過降低SSD性能來(lái)降溫。因此,當(dāng)環(huán)境溫度過高時(shí),會(huì)影響到SSD的性能,觸發(fā)SSD內(nèi)部的溫度控制系統(tǒng),調(diào)節(jié)SSD的性能。

h) 使用壽命對(duì)性能造成影響。NAND Flash在不斷擦除使用時(shí),F(xiàn)lash的bit error會(huì)不斷上升,錯(cuò)誤率的提升會(huì)影響到SSD的IO性能。

2, 軟件因素

a) 數(shù)據(jù)布局方式。數(shù)據(jù)布局方法需要充分考慮NAND Flash中的并發(fā)單元,如何將IO操作轉(zhuǎn)換成NAND Flash的并發(fā)操作,這是數(shù)據(jù)布局需要考慮的問題。例如,采用數(shù)據(jù)交錯(cuò)的方式在多通道page上進(jìn)行數(shù)據(jù)布局,通過這種方式可以優(yōu)化順序帶寬。

b) 垃圾回收/wear leveling調(diào)度方法。數(shù)據(jù)回收、wear leveling、data retention等操作會(huì)產(chǎn)生大量的NANDFlash后端流量,后端流量直接反應(yīng)了SSD的寫放大系數(shù),也直接體現(xiàn)在后端帶寬的占用。垃圾回收等產(chǎn)生的流量也可以稱之為背景流量,背景流量會(huì)直接影響到前端用戶性能。因此需要對(duì)背景流量和用戶流量之間進(jìn)行合理調(diào)度,使得用戶IO性能達(dá)到最佳。

c) OP預(yù)留。為了解決壞塊、垃圾回收等問題,在SSD內(nèi)部預(yù)留了一部分空閑資源,這些資源被稱之為OP(Overprovisioning)。OP越大,GC過程中平均搬移的數(shù)據(jù)會(huì)越少,背景流量會(huì)越小,因此,寫放大降低,用戶IO性能提升。反之,OP越小,性能會(huì)越低,寫放大會(huì)越大。在SSD容量較小的時(shí)代,為了提升SSD的使用壽命,往往OP都設(shè)置地比較大。

d) Bit error處理影響性能。在SSD內(nèi)部采用多種機(jī)制來(lái)處理NAND Flash所產(chǎn)生的Bit error。ECC糾錯(cuò)、readretry、soft LDPC以及RAIN都是用來(lái)糾正bit翻轉(zhuǎn)導(dǎo)致的錯(cuò)誤。當(dāng)Bit錯(cuò)誤率增加時(shí),軟件處理的開銷越大,在bit控制在一定范圍之內(nèi),完全可以通過硬件進(jìn)行糾正。一旦軟件參與到bit糾正的時(shí)候,會(huì)引入較大的性能開銷。

e) FTL算法。FTL算法會(huì)影響到SSD性能,對(duì)于不同用途的SSD,F(xiàn)TL的設(shè)計(jì)與實(shí)現(xiàn)是完全不同的,企業(yè)級(jí)SSD為了追求高性能,通常采用Flat mapping的方式,采用大內(nèi)存緩存映射表;消費(fèi)級(jí)SSD為了追求低成本,通常采用元數(shù)據(jù)換入換出的方式,并且采用pSLC+TLC的組合方式進(jìn)行分層存儲(chǔ),也可以采用主機(jī)端內(nèi)存緩存元數(shù)據(jù)信息,但是這些方式都會(huì)影響到性能。

f) IO調(diào)度算法。NAND Flash具有嚴(yán)重的性能不對(duì)稱性,F(xiàn)lash Erase和Program具有ms級(jí)延遲,F(xiàn)lash read的延遲在us級(jí)。因此,如何調(diào)度Erase、Program以及read是SSD后端設(shè)計(jì)需要考慮的問題。另外,前端IO以及背景IO之間的調(diào)度也是需要權(quán)衡考慮,通過IO調(diào)度可以達(dá)到最佳性能表現(xiàn)。在IO調(diào)度過程中,還需要利用NANDFlash的特性,例如Program Suspension,通過這些特性的利用,最優(yōu)化SSD前端IO性能。

g) 驅(qū)動(dòng)軟件。驅(qū)動(dòng)軟件運(yùn)行在主機(jī)端,通常分為內(nèi)核態(tài)和用戶態(tài)兩大類,內(nèi)核態(tài)驅(qū)動(dòng)會(huì)消耗較多的CPU資源,存在頻繁上下文切換、中斷處理,因此性能較低;用戶態(tài)驅(qū)動(dòng)通常采用Polling IO處理模式,去除了上下文切換,可以充分提升CPU效率,提升整體IO性能。

h) IO Pattern對(duì)性能產(chǎn)生影響。IO Pattern影響了SSD內(nèi)部的GC數(shù)據(jù)布局,間接影響了GC過程中的數(shù)據(jù)搬移量,決定了后端流量。當(dāng)IO Pattern為全順序時(shí),這種Pattern對(duì)SSD內(nèi)部GC是最為友好的,寫放大接近于1,因此具有最好的性能;當(dāng)IO Pattern為小塊隨機(jī)時(shí),會(huì)產(chǎn)生較多的GC搬移數(shù)據(jù)量,因此性能大為下降。在實(shí)際應(yīng)用中,需要通過本地文件系統(tǒng)最優(yōu)化IO Pattern,獲取最佳性能。

3, 客觀因素

a) 使用時(shí)間越長(zhǎng)會(huì)導(dǎo)致SSD性能變差。使用時(shí)間變長(zhǎng)之后,SSD內(nèi)部NAND Flash的磨損會(huì)加重,NAND Flash磨損變大之后會(huì)導(dǎo)致bit錯(cuò)誤率提升。在SSD內(nèi)部存在一套完整的bit錯(cuò)誤恢復(fù)機(jī)制,由硬件和軟件兩大部分構(gòu)成。當(dāng)bit錯(cuò)誤率達(dá)到一定程度之后,硬件機(jī)制將會(huì)失效。硬件機(jī)制失效之后,需要通過軟件(Firmware)的方式恢復(fù)翻轉(zhuǎn)的bit,軟件恢復(fù)將會(huì)帶來(lái)較大的延遲開銷,因此會(huì)影響到SSD對(duì)外表現(xiàn)的性能。在有些情況下,如果一塊SSD在掉電情況下放置一段時(shí)間之后,也可能會(huì)導(dǎo)致性能變差,原因在于SSD內(nèi)部NAND Flash中存儲(chǔ)電荷的漏電,放置一段時(shí)間之后導(dǎo)致bit錯(cuò)誤率增加,從而影響性能。SSD的性能和時(shí)間相關(guān),本質(zhì)上還是與NAND Flash的比特錯(cuò)誤率相關(guān)。

b) 環(huán)境溫度也會(huì)對(duì)性能造成影響。為了控制SSD溫度不能超過上限值,在SSD內(nèi)部設(shè)計(jì)有一套溫度負(fù)反饋機(jī)制,該機(jī)制通過檢測(cè)的溫度對(duì)NAND Flash后端帶寬進(jìn)行控制,達(dá)到降低溫度的效果。如果一旦溫度負(fù)反饋機(jī)制開始工作,那么NAND Flash后端帶寬將會(huì)受到限制,從而影響前端應(yīng)用IO的性能。下面從軟件的角度出發(fā),重點(diǎn)闡述GC以及IO Pattern對(duì)SSD性能的影響。

3.1 GC對(duì)性能的影響

SSD內(nèi)部有一個(gè)非常厚重的軟件層,該軟件層用來(lái)解決NAND Flash的問題,采用log-structured的方式記錄數(shù)據(jù)。Log-structured方式引入了GC的問題,對(duì)于前端業(yè)務(wù)來(lái)講,GC流量就是背景噪聲。GC流量不是時(shí)時(shí)刻刻存在的,因此,SSD對(duì)外體現(xiàn)性能大幅度波動(dòng)。當(dāng)SSD為空盤時(shí),性能會(huì)非常好,為最佳性能;當(dāng)SSD被用過一段時(shí)間之后,性能會(huì)大幅降低。其中GC起到了很重要的作用。企業(yè)級(jí)SSD在發(fā)布Spec的時(shí)候,都會(huì)發(fā)布SSD盤的穩(wěn)態(tài)性能。在性能測(cè)試的時(shí)候,需要對(duì)盤進(jìn)行老化預(yù)處理。通常預(yù)處理的方法是順序?qū)憹M盤,然后再隨機(jī)兩遍寫盤,預(yù)處理完成之后,再對(duì)盤進(jìn)行隨機(jī)讀寫測(cè)試,得到Spec中定義的值。穩(wěn)態(tài)值基本可以認(rèn)為是盤的下限性能。

wKgZomVRmn-AQUFnAAHcBg7lVys474.png

上圖所示是多個(gè)廠商的盤在空盤和穩(wěn)態(tài)情況下的性能對(duì)比,由此可見穩(wěn)態(tài)情況和空盤情況下的性能差距很大。在穩(wěn)態(tài)情況下,SSD內(nèi)部的GC會(huì)全速運(yùn)行,會(huì)占用較多的NAND Flash后端帶寬。背景流量和前端數(shù)據(jù)流的比例也就體現(xiàn)了SSD盤的寫放大系數(shù),寫放大系數(shù)越大,背景流量占用帶寬越多,SSD對(duì)外體現(xiàn)的前端性能也就越差。寫放大系數(shù)很多因素相關(guān),例如OP、應(yīng)用IO Pattern等。如果應(yīng)用IO Pattern比較好,那么可以降低寫放大系數(shù),背景噪聲流就會(huì)減少,前端業(yè)務(wù)的性能會(huì)提升。例如,在SSD完全順序?qū)懭氲那闆r下,寫放大系數(shù)可以接近于1,此時(shí)GC產(chǎn)生的數(shù)據(jù)流很少,背景流量基本沒有,后端帶寬基本被業(yè)務(wù)數(shù)據(jù)流占用,因此對(duì)外體現(xiàn)的性能會(huì)很好。

GC是影響性能的重要因素,除了影響性能之外,GC會(huì)增大寫放大,對(duì)SSD的使用壽命產(chǎn)生影響。從軟件層面的角度考慮,可以通過優(yōu)化應(yīng)用IO Pattern的方式優(yōu)化SSD內(nèi)部GC,從而進(jìn)一步提升SSD的性能,優(yōu)化使用壽命。對(duì)于下一代更為廉價(jià)的QLC SSD介質(zhì),就需要采用這種優(yōu)化思路,否則無(wú)法很好地滿足實(shí)際業(yè)務(wù)的應(yīng)用需求。

審核編輯:湯梓紅

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

    關(guān)注

    10

    文章

    1650

    瀏覽量

    149562
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10951

    瀏覽量

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

    關(guān)注

    21

    文章

    2911

    瀏覽量

    118340
  • 磁盤
    +關(guān)注

    關(guān)注

    1

    文章

    383

    瀏覽量

    25375
  • nvme
    +關(guān)注

    關(guān)注

    0

    文章

    224

    瀏覽量

    22850

原文標(biāo)題:NVMe SSD性能影響因素一探究竟(上)

文章出處:【微信號(hào):架構(gòu)師技術(shù)聯(lián)盟,微信公眾號(hào):架構(gòu)師技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Xilinx FPGA NVMe Host Controller IP,NVMe主機(jī)控制器

    ,從而可實(shí)現(xiàn)更高存儲(chǔ)性能和存儲(chǔ)容量。 無(wú)需CPU,NVMe Host Controller IP自動(dòng)執(zhí)行對(duì)PCIe SSD的PCIe設(shè)備枚舉和配置、NVMe控制器識(shí)別和初始化、
    發(fā)表于 02-21 10:16

    Xilinx FPGA NVMe主機(jī)控制器IP,高性能版本介紹應(yīng)用

    ,從而可實(shí)現(xiàn)更高存儲(chǔ)性能和存儲(chǔ)容量。無(wú)需CPU,NVMe Host Controller IP自動(dòng)執(zhí)行對(duì)PCIe SSD的PCIe設(shè)備枚舉和配置、NVMe控制器識(shí)別和初始化、
    發(fā)表于 03-09 13:56

    Xilinx FPGA高性能NVMe SSD主機(jī)控制器,NVMe Host Controller IP

    ,從而可實(shí)現(xiàn)更高存儲(chǔ)性能和存儲(chǔ)容量。無(wú)需CPU,NVMe Host Controller IP自動(dòng)執(zhí)行對(duì)PCIe SSD的PCIe設(shè)備枚舉和配置、NVMe控制器識(shí)別和初始化、
    發(fā)表于 03-27 17:23

    性能NVMe主機(jī)控制器,Xilinx FPGA NVMe Host Accelerator IP

    ,從而可實(shí)現(xiàn)更高存儲(chǔ)性能和存儲(chǔ)容量。無(wú)需CPU,NVMe Host Controller IP自動(dòng)執(zhí)行對(duì)PCIe SSD的PCIe設(shè)備枚舉和配置、NVMe控制器識(shí)別和初始化、
    發(fā)表于 04-10 22:55

    性能NVMe主機(jī)控制器,Xilinx FPGA PCIe 3

    ,從而可實(shí)現(xiàn)更高存儲(chǔ)性能和存儲(chǔ)容量。無(wú)需CPU,NVMe Host Controller IP自動(dòng)執(zhí)行對(duì)PCIe SSD的PCIe設(shè)備枚舉和配置、NVMe控制器識(shí)別和初始化、
    發(fā)表于 04-20 14:41

    NVMe P4600的速度部分低于SATA SSD?

    ,三星SATA SSD如何能夠勝過英特爾NVMe SSD(讀取速度)?P4600使用最新的固件(使用當(dāng)前的數(shù)據(jù)中心工具)進(jìn)行更新,并使用最新的英特爾驅(qū)動(dòng)程序運(yùn)行(Windows驅(qū)動(dòng)程序甚至更慢!)這是正常
    發(fā)表于 11-28 14:57

    在Xilinx ZCU102評(píng)估套件上啟用NVMe SSD接口

    無(wú)線網(wǎng)絡(luò),下一代高級(jí)駕駛員輔助系統(tǒng)(ADAS)和工業(yè)物聯(lián)網(wǎng)(IIoT)解決方案。無(wú)論如何,對(duì)于需要高性能和高可靠性的外部數(shù)據(jù)存儲(chǔ)的應(yīng)用程序(例如NVMe SSD驅(qū)動(dòng)器),需要利用GTH收發(fā)器
    發(fā)表于 09-03 16:07

    如何為工業(yè)應(yīng)用設(shè)計(jì)NVMe SSD

    RK3399核心板有哪些應(yīng)用?如何為工業(yè)應(yīng)用設(shè)計(jì)NVMe SSD呢?
    發(fā)表于 03-07 06:12

    西部數(shù)據(jù)推出新款高性能NVMe SSD

    2018年5月22日—西部數(shù)據(jù)推出新款高性能NVMe SSD,Western Digital Black 3D NVMe SSD。這款固態(tài)硬
    發(fā)表于 05-24 18:12 ?1816次閱讀

    NVMe SSD與SATA SSD性能對(duì)比

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

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

    NVMe SSD性能時(shí)常捉摸不定,為此我們需要打開SSD的神秘盒子,從各個(gè)視角分析SSD
    的頭像 發(fā)表于 11-05 09:47 ?9099次閱讀

    Flashtec系列的最新成員 Flashtec NVMe 3108 PCIe Gen 4企業(yè)NVMe SSD控制器

    Microchip的新Flashtec NVMe 3108 PCIe Gen 4 NVMe SSD控制器可提供各種緊湊型SSD外形尺寸,并具有業(yè)界領(lǐng)先的安全功能,并具有高效能,出色的
    的頭像 發(fā)表于 09-11 13:43 ?2870次閱讀

    重新定義NVMe SSD外形

    NVMe NVM Express(NVMeSSD在企業(yè)和數(shù)據(jù)中心應(yīng)用中的部署大量涌現(xiàn),但同時(shí)出現(xiàn)的一些復(fù)雜狀況讓這些部署無(wú)法發(fā)揮出全部?jī)?yōu)勢(shì)。今天的文章我們就來(lái)說(shuō)說(shuō)NVMe
    的頭像 發(fā)表于 09-23 14:26 ?2900次閱讀
    重新定義<b class='flag-5'>NVMe</b> <b class='flag-5'>SSD</b>外形

    西部數(shù)據(jù)推出高性能、輕薄低功耗的PCIe Gen4 NVMe SSD

    作為全球存儲(chǔ)解決方案供應(yīng)商,推出高性能、輕薄低功耗的PCIe? Gen4 NVMe? SSD
    的頭像 發(fā)表于 05-27 11:00 ?3882次閱讀

    浪潮NVMe SSD性能

    本次測(cè)試采用浪潮服務(wù)器 SA5112M6,磁盤采用三個(gè)節(jié)點(diǎn)每個(gè)節(jié)點(diǎn)八塊浪潮 INSPUR-NS8610G1U320 NVMe進(jìn)行測(cè)試,此次采用的NVMe SSD具有極高的性能,產(chǎn)品4K
    發(fā)表于 08-03 10:25 ?2170次閱讀