初始狀態(tài)

兩個月后

對于各種不同使用場景的可靠性,  PyNVMe3可以利用其ioworker靈活地制造各種IO序列,  用來檢查測試 盤在不同場景下以及不同場景切換時的可靠性。

2. 性能測試

上?我們大概探討了SSD測試需要關注的?個方? 。本章我們繼續(xù)深?探討性能測試,  特別是?些貼近 用戶實際使用體驗的性能測試用例。

2.1 低負載性能

很多性能測試需要創(chuàng)建多個很深的隊列,  并直接把負載拉滿 。但實際使用中,  低負載才是主流場景 。譬 如我們?yōu)g覽網(wǎng)? 、寫文檔 、甚至看在線視頻,  對SSD的負載都是?常小的 。我們測試低負載的性能主要 看讀寫命令的完成時間,  也就是延遲 。如果某些命令的延遲大于300ms,  使用者就可能會感受到卡頓 。 我們在這類測試中會固定每秒下發(fā)命令的數(shù)目,  并收集每個命令的延遲。

延遲 (ms) 10 IOPS 99% 4K 1QD 99.9% RW/Trim mixed 99.9%
S50Pro 1.824 0.122 78.861
SN770 102.830 0.179 16.043
NM710 >999.999 0.142 293.858

2.2. 0秒性能

在互聯(lián)網(wǎng)還不發(fā)達的時候,  我們經(jīng)常會拷貝很大的電影或者數(shù)據(jù)庫文件,  所以我們?常在意持續(xù)讀寫的速度 。但是在互聯(lián)網(wǎng)時代,  這種使用方式已經(jīng)不再是主流 。而且隨著SSD性能的提升,  很多大文件的拷貝時間也只需要幾秒鐘 。在這種情景下,  我們非常重視SSD的0秒性能,  要求讀寫的速度能很快拉滿 。  下面是2塊不同的測試盤順序讀的性能曲線,  盡管他們總體性能很接近,  但第?塊盤的0秒性能明顯是有問題的。

2.3. 延遲分布

我們平時用電腦最惱火的事情就是卡頓 ??赡艽蜷_?個word文件會卡很久,  可能打開?個網(wǎng)站會卡很久,可能編譯代碼會卡 。如果上面三件事情在同時進行,  那卡頓的可能性就更大 。有些卡頓問題來自于 存儲 。SSD號稱的快通常指讀寫帶寬,  但在卡頓問題上我們更在意讀寫的延遲,  特別是最大延遲 。最大 延遲這個指標非常重要:  譬如我們打開?個word文件需要同時從SSD讀取10個數(shù)據(jù),  用戶感受到的不是 這10個數(shù)據(jù)的平均延遲,  而是最慢的那?個 。但SSD在最大延遲這個指標上面,  并不是天然優(yōu)秀。

good

bad

如上圖1是?個延遲分布非常好的例?,  絕大部分IO的延遲集中在很短的時間范圍內(nèi), 但圖2的延遲分 布就相對差?些。

2.4. SLC緩存釋放速度

很多評測數(shù)據(jù)是在空盤的時候測試寫?速度,  也就是所謂的SLC緩存寫?速度 。這個速度是盤能提供的 最大寫?速度,  跑分?定好看 。但是在實際使用中,  SSD肯定不會是空盤,  甚至會是接近滿盤的狀態(tài)。

這就意味著SLC緩存的效果會大打折扣 。如果斷斷續(xù)續(xù)有很多寫操作,  后面的數(shù)據(jù)就會被直接寫到    TLC/QLC上面,  導致性能下降 。所以SSD盤?般在空閑的時候會盡量把SLC緩存里面的數(shù)據(jù)再次寫? TLC/QLC,  釋放SLC緩存空間供后續(xù)的寫操作使用。

在實際場景中,  我們看重SLC緩存的釋放速度,  考察盤在空閑的時候能不能盡可能快地把緩存數(shù)據(jù)搬移 出去 。這個項目對QLC SSD尤其重要,  因為QLC的寫?速度特別慢,  而其SLC緩存也會比較? 。如果不 能發(fā)揮其SLC緩存的作用,  QLC固態(tài)硬盤的寫?性能會更像機械硬盤。

該項測試由4輪寫操作組成,  每輪的空閑時間逐個變長 。如下圖所示,  空閑時間越長,  期望被釋放出來 的SLC緩存越多,  因此SLC的寫?性能可以維持越長的時間 。通過這個測試,  我們也可以估算出空閑時 SLC緩存的釋放速度。

2.5. 滿盤性能

空盤的性能是最好的,  因為這個時候的讀寫操作通常發(fā)生在SLC緩存內(nèi) 。但日常使用時,  大部分時候盤 都不會是空的 。我們在盤的不同空間占用水平  (例如10% 、50% 、90%等)下測試SSD的性能 ??傮w  上,  盤越滿,  性能越低,  寫性能尤其明顯 。下表是順序?qū)懺诓煌臻g占用水平下的性能。

單位:  MB/s 10%空間占用 50%空間占用 90%空間占用
TiPlus7100 5141.568 2283.801 2001.968
990Pro 5535.679 1661.820 1421.784
P41 5519.930 1735.471 955.609
Rocket4Plus 5372.183 1097.728 771.419

10%空間占用  ( 基本空盤)  時候的寫入性能都很好 。但盤買來肯定是要用的,不可能?直是空盤 。我們 看到50%空間占用的時候,  所有盤的性能都出現(xiàn)大幅下降  ( 因為SLC緩存用完了)  。到了90%空間占用 的時候,  寫入性能進?步下降 。大家可以根據(jù)自己的使用習慣,  參考50%或者90%空間占用時的寫入性能。

2.6. 老化性能

很多廠家的標稱性能是對新盤測試得到的,  但是當SSD盤用了?段時間,  NAND的PE被消耗?部分之 后,  性能還會保持嗎? 我們測試了不同PE消耗水平  (例如300PE,  600PE,  900PE等)下的順序?qū)懶?能,  發(fā)現(xiàn)有些盤會出現(xiàn)明顯的性能衰減 。很明顯,  這里不建議大家購買?手SSD。

單位:  MB/s TiPlus7100 順序?qū)? NM710 順序?qū)?
300 PE消耗 2671.769 2336.024
600 PE消耗 2661.653 720.599
900 PE消耗 2665.166 716.710

2.7. 性能?致性

上?我們看到的性能數(shù)據(jù)都是在測試周期內(nèi)的性能平均值 。我們總是?廂情愿的認為SSD應該提供?個 很穩(wěn)定的性能 。但事實上有太多可能導致性能的抖動,  甚至是間歇性休克 。如下圖,  在順序?qū)懙臅r候, 測試盤出現(xiàn)了周期性的性能降到0的休克現(xiàn)象 。對應到具體使用場景,  如果用戶在拷貝?個大文件的時 候還在瀏覽網(wǎng)?,  那可能就會遭遇到周期性的卡頓問題了。

至于產(chǎn)生性能抖動的原因其實有很多可能,  譬如:  盤內(nèi)部回收垃圾數(shù)據(jù)  ( GC)  、高溫保護,  等等 。上  圖中紅色線是溫度曲線,  可以發(fā)現(xiàn)當紅色線上升到?個溫度閾值的時候,  開始出現(xiàn)周期性的性能休克現(xiàn) 象 。所以這里的問題應該是由高溫保護機制造成的 。以后SSD要上車,  這?點?常重要!

2.8. 混合性能

標稱性能通常是純讀或者純寫的性能,  但實際使用中讀寫可能混合在?起 。有多種可能的混合方式,  譬 如不同比例的讀寫混合 、讀寫和Trim命令混合 、和Admin命令混合,  等等 。我們發(fā)現(xiàn)在混?Trim命令    后,不同盤的性能差異?常大 。而在混?admin命令后,  差異會更大:  有些盤響應admin命令的時間甚 至會高達數(shù)秒 。這些問題在大壓?的場景下會影響用戶的使用體驗。

  讀寫混合 KIOPS 讀寫Trim混合 KIOPS
P41 218.772 11.671
990Pro 510.325 6.936
980Pro 267.420 1.355

在上表中我們可以注意到980Pro的Trim混合性能并不好,  但這個問題在后續(xù)的990Pro上得到了修正。

2.9. 上電時間

還有?類性能是上電時間,  就是盤在各種情況下,  從上電到完成第?筆讀命令的時間 。上電時間在正常 掉電和非正常掉電的情況下會很不?樣 。下圖是?個盤500次非正常掉電后的上電讀操作完成時間,  分 布在1-5秒之間 。而對于正常掉電,  這個時間基本穩(wěn)定在0.2秒以內(nèi)。

另外,  在功耗測試中我們也會統(tǒng)計各種低功耗狀態(tài)的退出時間 。我們的測試可以控制測試盤在不同時間 點  (精確到us)  退出各種低功耗狀態(tài),  并測量退出過程所需要的時間 ??梢钥吹疆敱P進入低功耗狀態(tài)的 時間越久,  其退出時間會越長。

上圖的低功耗退出時間控制的比較好 。但有些盤的退出時間就比較長而且發(fā)散,  這樣也會影響到用戶的 使用體驗。

3. 影響SSD性能和可靠性的各種因素

3.1. 封裝

在實際使用中,  首當其沖的問題是散熱問題 。以前SATA SSD盤性能低 、尺寸大,  所以發(fā)熱并不嚴重 。 但是進入到NVMe SSD時代,  盤的性能成倍增?,  而尺寸卻變得更小,  SSD的溫度問題就暴露出來了 。 有些盤在短時間內(nèi)讀寫的性能?常好,  但是當測試時間拉?,  溫度上升到?個閾值后就觸發(fā)了高溫保護 機制,  性能隨即下降。

上圖是?個2230封裝形式的產(chǎn)品 。我們測試了相同型號的2280封裝的產(chǎn)品,  結(jié)果如下 ??梢姡?nbsp; 2280封 裝由于散熱更好,  性能也更穩(wěn)定。

3.2. SLC緩存

現(xiàn)在的消費級SSD基本都是使用TLC NAND,  以后會過渡到QLC NAND 。為了提升使用體驗,  所有消費 級SSD都使用了SLC緩存的設計 。SLC緩存在空盤的時候能顯著提升SSD的性能 。但當SLC緩存用盡后 需要把數(shù)據(jù)搬運出去,  以釋放SLC緩存占據(jù)的NAND空間給后續(xù)寫操作使用 。這種數(shù)據(jù)搬運的操作必然 會影響SSD的性能和壽命,  所以SLC緩存是?把雙刃劍 。不同?家在SLC緩存的設計上有不同的選擇, 在利弊之間調(diào)校出自己的風格。

下圖是某塊盤分別在FOB和接近EOL時,  順序填全盤的性能曲線 。綠線是FOB時候的性能,  可以看到   SLC性能維持了很長的時間 。通過計算可以看出,  這塊盤把?乎所有的NAND容量都用來做SLC緩存, 這種使用?式對NAND顆粒的磨損非常大 。當盤達到?定的磨損程度后,  SLC緩存空間會逐步調(diào)整,  以 保證總的寫?數(shù)據(jù)量 。圖中紅線是盤在EOL時的順序?qū)懶阅埽?nbsp; 可以看到SLC緩存空間?乎消失,  表現(xiàn)出 現(xiàn)的性能特性也是和FOB時候的截然不同。

3.3. PCIe Gen4

現(xiàn)在市?上的NVMe SSD基本都是PCIe Gen4規(guī)格的 。我們通過PyNVMe3把測試盤配置到不同的速度規(guī) 格,  比較其順序讀寫的性能和功耗,  如下表。

PCIe speed sequential read (MB/s) sequential read (mW) power e?ciency (GB/J)
Gen4 2735 2850 0.96
Gen3 2714 2652 1.02
Gen2 1754 1960 0.89

事實上,  在大部分實際使用場景中Gen4并沒有帶來更高的性能和使用體驗,  反而功耗效率還可能不如 Gen3 。那我們還需要急著上Gen5嗎?

3.4. NAND顆粒

目前市場上SSD的顆?;径际?D TLC NAND,  但也開始出現(xiàn)?些QLC的產(chǎn)品 。  目前QLC盤的各種測 試結(jié)果還不理想,  需要時間去優(yōu)化 、完善 、成熟 。我們也希望早日看到國產(chǎn)的3D QLC NAND顆粒。

3.5. 固件版本

SSD的固件經(jīng)常會升級,  用來解決?些性能 、功能或者可靠性的問題 。我們內(nèi)部測試經(jīng)常會遇到?些問 題可以通過升級固件解決 。但是升級固件也有?險,  因為后續(xù)固件版本的測試資源肯定不如新產(chǎn)品的第 ?版固件那么多 。我們看到過?些產(chǎn)品升級固件后活盤變板磚的魔術(shù)。

4. 購買建議

基于10多年的SSD開發(fā)經(jīng)驗以及大量的測試數(shù)據(jù),  我們提供?些SSD盤的采購建議,  供大家參考 。  目前 市場上的NVMe SSD大概可以分成2類產(chǎn)品:  高性能盤和高性價比盤 。我們首先要確定自?的需求 。如  果不知道自?需要哪類SSD,  大概率應該是高性價比盤。

4.1. 高性能盤

這類產(chǎn)品配備大容量的DRAM,  用于存放完整的SSD管理數(shù)據(jù),  有助于顯著提高SSD的隨機讀寫能? 。 這類盤雖然價格比較高,  但是可以完整發(fā)揮NAND的性能特點,  在大負載的使用場景下提供穩(wěn)定的性     能 。這類產(chǎn)品通常是2280封裝,  但還是強烈建議加裝散熱片,  并用在臺式機中 。高性能盤不適合用在筆 記本和超極本中,  散熱問題導致其性能大打折扣。

4.2. 高性價比盤

另外?類產(chǎn)品主打性價比 。這類產(chǎn)品通常不會配備DRAM,  而是通過HMB特性從系統(tǒng)DRAM中獲取?部 分內(nèi)存供SSD使用 。這類產(chǎn)品為了追求低成本,  通常會讓模組?或者主控?操?代? 。如果預算有限, 我們可以考慮這類盤 。但高性價比盤的質(zhì)量參差不齊,  即便是來自大?的某些產(chǎn)品也未必可靠 。根據(jù)我 們的測試結(jié)果,   目前渠道市場上可以推薦的只有下面2款產(chǎn)品。

西數(shù) SN770

長存 致鈦 TiPlus7100

4.3. QLC

這并不是第3類產(chǎn)品,  而是未來的高性價比盤的必然選擇 。未來1 、2年消費者應該可以用更低的價格買 到性能夠用且可靠的QLC盤 。我們會持續(xù)關注這類產(chǎn)品的發(fā)展。

4.4. OEM和渠道市場

渠道市場的產(chǎn)品可以從京東或者Amazon上面直接購買 。OEM產(chǎn)品只會供給Dell 、聯(lián)想 、小米這些PC廠商 。上面提到的高性價比盤在渠道市場上面的產(chǎn)品測試結(jié)果并不好,  但是NAND原廠會投入大量的研發(fā) 和測試資源,  來保證其OEM產(chǎn)品的質(zhì)量 。我們不建議大家購買筆記本后自己更換SSD:  渠道市場的高性 價比盤品質(zhì)普遍不好,  而高性能盤在筆記本中由于散熱問題并不能發(fā)揮其正常的性能水平。

4.5. 測試盤信息匯總

總體上,  還是符合?分價錢?分貨的道理,  但確實也有個別產(chǎn)品價格高但品質(zhì)差 。如果預算有限,  我們 推薦512GB的TiPlus7100和SN770,  雖然不是最便宜的選擇,  但在我們的測試中表現(xiàn)相當穩(wěn)定,  性能和 容量也夠用 。再多?些預算,  我們可以選擇1T的P5Plus和KC3000,  容量和性能都會得到?常大的提    升 。如果預算?常充足,  我們可以選擇P41/SN850/990Pro這些產(chǎn)品,  ?常適合游戲玩家。

對于大多數(shù)?常辦公和上網(wǎng)的需求,  配備國產(chǎn)NAND和國產(chǎn)聯(lián)蕓主控的TiPlus7100就?常適合,功能、 性能 、功耗 、可靠性的表現(xiàn)都相當不錯。

5. 關于PyNVMe3

PyNVMe3是?個開放 、高性能且可擴展的NVMe SSD測試?具 。它配備了專?用于測試的NVMe驅(qū)動程 序,  內(nèi)建原生的Python API接?,  并提供了?整套完善的測試集 。PyNVMe3幫助SSD開發(fā)和測試?程師高效地開發(fā)測試腳本。

PyNVMe3是?個第三?的可獲得的SSD測試平臺,有?些?商在這個公共平臺上?聯(lián)合開發(fā)和部署測 試腳本,避免了使用內(nèi)部私有測試?案導致的?系列IP?險。

PyNVMe3的開放性使其能夠充分利用Python軟件生態(tài),  提高腳本開發(fā)的效率  ( 譬如應用AI?具來輔助寫腳本)  。此外,  用戶還可以將PyNVMe3大量部署到各種計算機上,  以此來保護既有投資。

PyNVMe3的高性能源于其用戶空間的輕量級設備驅(qū)動程序,  該驅(qū)動程序能夠減少調(diào)用操作系統(tǒng)內(nèi)核的 開銷 。這使得PyNVMe3能夠產(chǎn)生比其他測試?具更高的IO壓?,  同時獲取更準確的性能數(shù)據(jù)。

PyNVMe3的可擴展性讓用戶可以通過自?的創(chuàng)新來擴展其測試能? 。PyNVMe3?持使用Quarch PAM  設備,  也可以通過??Python腳本來集成其他測試設備 。用戶可以在常規(guī)的CI和自動化測試框架中運? PyNVMe3的測試腳本。

PyNVMe3的測試集覆蓋了NVMe協(xié)議  ( 包括各種正常和異常測試用例)  、HMB注錯 、異步上下電 、IO  壓? 、低功耗狀態(tài)切換和TCG等各種測試 。通過大量Python測試腳本,  實現(xiàn)了完全的自動化測試與數(shù)據(jù) 分析,  保證了測試結(jié)果的準確和公正。

最近?年,  我們使用PyNVMe3測試集對消費級SSD市場上的多款產(chǎn)品進行了詳細地測試,  每塊測試盤  的測試周期長達3個月,  并收集了SSD產(chǎn)品在整個測試周期內(nèi)的各種場景下的性能和可靠性數(shù)據(jù) 。歡迎 訪問我們的官網(wǎng)獲取這些測試的基本結(jié)果 。如果需要完整的測試數(shù)據(jù)和測試服務,  請通過電子郵件聯(lián)系 我們:  sales@pynv.me。

作為?個獨立的第三方SSD測試平臺和服務供應商,  我們不斷優(yōu)化和提升我們的測試工具,  為客戶提供

快速而周到的服務,提供公正客觀的資訊,  希望和業(yè)界合作伙伴?起做出更好更穩(wěn)定的SSD產(chǎn)品!

獲取更多更新的SSD資訊,  請通過下方?維碼添加我們的微信公眾號。

分享到

崔歡歡

相關推薦