1.AS SSD Benchmark
AS SSD Benchmark是一款由德國公司開發的檢測固態硬碟性工具。該工具可被適用於Windows的 AS SSD基準測試。AS SSD Benchmark漢化版則是由國內某技術人員漢化後分享。目前比較常見的較新版本是2.0.6821.41776。目前這是最常見的測評視頻/文章中所使用的軟體。
圖一 AS SSD對海康威視E200Pro 256GB進行測試
圖一為AS SSD的軟體界面,第一個方框中表示的是硬碟的廠商編號和固件編號,第二個方框中Stornvme-OK表示的是目前系統驅動已完成安裝,一般來說,三星和intel的部分產品會有自己的驅動(三星為Secnvme,英特爾為IaNVMe,OCZ為oczNVMe),其餘絕大部分廠商均使用微軟Windows10內自帶的默認系統驅動。1024K-OK,前面的數字和硬碟有關,不同硬碟容量這個數字都不一樣,只要後面顯示「OK」即表示硬碟已4K對齊,如果沒有4K對齊,該項文字會顯示紅色的「-bad」。
第三個方框中,左邊可以選擇需要測試的硬碟,右邊為測試文件大小(該項功能在1.3.x版本之後的某個版本才加上),這項是針對現在的使用SLC cache設計的硬碟所加上的功能。使用SLC cache設計的硬碟,在文件寫入操作大小大於SLC cache(寫入加速緩衝區,三星稱之為「智能TurboWrite」技術)的大小的時候,就會有性能的下降,加大測試文件大小可以將這個問題反應在測試結果中。
設置好上面的項目之後,就可以開始測試了,下面為四個測試結果的說明:
(1)Seq
「Sequential」的縮寫,表示連續讀寫(或者叫做順序讀寫),這個性能表徵的是我們日常拷貝大文件(學習資料、小電影、EXE類軟體安裝包、ISO鏡像文件)到硬碟上的時候的複製速度,AS SSD Benchmark採用的測試方法是對硬碟順序寫入/讀取多個16MB大小的隨機文件,記錄每秒鐘進行了多少次讀/寫操作,通過換算即可得到連續讀取/寫入性能。
(2)4K
嚴謹的稱呼應該是「4K QD1 T1 100%Random」,意為使用單個CPU線程對硬碟進行1個隊列深度4K大小文件的隨機讀取/寫入。這裡值得注意的是,線程(T:Thread)和隊列深度(QD:Queue depth)都會影響SSD的4K性能,隊列深度就是CPU每次向存儲發送讀寫操作的並發數。打個比方,在旅遊景點的檢票口,散客需要一個一個的檢票(隊列深度QD = 1),而團客是導遊一次帶著很多票讓一個旅遊團的人一起進去(隊列深度QD = 32/64/……),散客那邊一次只能進一個遊客,而旅行團卻是一次放很多人進去,這樣,團體遊客這邊在相同的時間裡面就可以有更多的遊客通過檢票口進入景點。固態硬碟這邊也是一樣,隊列深度加大了,每秒鐘能響應的4K文件讀寫次數也就變多了,反應到測試結果就是4K QD1這一項的測試結果比4K QD64要低。這也就是為什麼下面那個4K (QD)64的測試結果比上面的4K (QD1)要高。(這裡要指出的是,由於漢化的問題,實際上「4K」這一項嚴謹的翻譯應該是「4K QD1單線程」,下面的「4K 64線程」應該翻譯為「4K QD64 多線程」)。
那麼又有人要問了,線程是什麼意思啊?
(3)4K 64線程
剛剛我們解釋了隊列深度的意義和對測試結果的影響,那麼線程是怎麼對4K性能造成影響的呢?
我們知道,硬碟的讀寫操作實際上還是和CPU分不開的,性能測試中,CPU的單核和多核性能直接影響4K性能(所以有些使用低壓處理器的,比如i7-8550U,就無法測試得到硬碟的標稱性能,開節能模式也會導致測試結果偏低)。還是上面那個比喻,景點如果只做一個檢票口,那單位時間能進入景點的遊客就會比較少,此時,如果多開幾個檢票口,那麼不管是散客還是團體遊客,每小時進入景點的人數就會翻倍。硬碟測試也是這樣,使用多個CPU線程處理讀寫操作,可以提高每秒鐘的4K讀寫次數,也就會使測試結果變高(實際中,由於顆粒性能和硬碟容量大小的問題,並不一定會嚴格的增加線程測試性能翻倍)。
4K QD64多線程就造成了一個多線程高隊列的測試條件,這種情況下會讓硬碟跑到這個測試平臺的理論峰值速度(但是往往由於平臺配置比如核心數和主頻,並不一定能跑到硬碟廠商的標稱性能)。
(4)訪問時間
這項指標表示的是延遲的大小,比如說,我現在需要從硬碟中讀取(或寫入)一個數據,CPU發送命令給主控,直到主控執行讀寫命令,這個過程是有一個時間的,所以就造成了延遲,這個測試項目就表徵了延遲的大小。AS SSD Benchmark是通過對硬碟執行512B大小的測試文件的讀寫,得到延遲。
值得注意的是,SATA協議的固態硬碟往往延遲都比NVMe更大,這是因為SATA接口是通過晶片轉接的,而NVMe走的是PCIe通道,一般情況下是直連CPU的(和顯卡的通道一樣),其執行讀寫操作延遲自然更低一點。
(5)得分
這個得分,是上面四個項目的綜合計算。一般來說,4K QD1 單線程和4K QD64 多線程佔比更大一些,Seq的權重比較低,原因在於日常使用中,更多的是對小文件的讀寫,連續大文件的讀寫往往不是那麼頻繁。
2.Crystal Disk Mark
圖二 Crystal Disk Mark對海康威視E200Pro 256GB進行測試
CrystalDiskMark是一個測試電腦硬碟檢測工具,簡單易於操作的界面隨時可以測試存儲設備,測試存儲設備大小和測試數字都可以選擇,還可測試可讀和可寫的速度。目前官網提供的最新版本為6.0.2,分32位和64位系統。普遍認為,Crystal Disk Mark比AS SSD Benchmark測試結果更加可靠,而且NVMe協議的固態硬碟很難用AS SSD Benchmark測試到準確結果,Crystal Disk Mark也有更大的測試配置自由(可以自行設置線程數和測試隊列深度)。
圖二中的紅色方框可以選擇測試次數和測試數據大小,一般默認測試5次取最大值,在「設置」選項中可以選擇「數據類型」、「線程和隊列」、「間隔時間」。
(1)數據類型
有兩個可選為「隨機」和「0X00(全零)」,這兩種測試數據類型對結果的影響主要體現在使使用壓縮主控方案的硬碟上,全零數據可壓縮性非常大,故測試出來的性能不具有真實性(因為日常使用不可能所有的數據都是零)。一般來說我們都會選擇「隨機」。(這也是默認選項)
(2)線程和隊列
圖三 Crystal Disk Mark隊列深度和線程的設置
上圖為隊列深度和線程數的設置,默認設置如上圖,可以根據需求自己選擇。一般來說默認設置就可以跑出廠商標註的峰值性能。但是對於極少更高性能的固態硬碟(比如PCIe4.0 X4的NVMe固態硬碟和少數企業級PCIe X8插卡式固態硬碟)需要自行調整隊列和線程數來測到峰值性能。
(3)間隔時間
這一項的默認設置是5秒,是每項測試之間的給固態硬碟「休息」的一個時間,可以保證上一項測試對後面的測試不造成影響(這和NAND Flash為基礎的固態硬碟的寫入原理有關)。一般來說設置5-10s均可。如果測試文件大小設置的太大(比如設置為16-32GiB),可以適當的增加間隔時間。
*為什麼要強調4K隨機性能?
剛剛我們一直在強調4K的性能測試,在AS SSD中分數也是4K佔比最高,原因何在?下面的一個統計圖會給你答案
圖四 Windows10下軟體運行中不同大小文件操作次數所佔比例的統計
該圖是統計了在使用辦公和幾個專業軟體的開啟和使用中系統所進行的文件操作中被讀寫的文件大小的分布情況*,可以看到很明顯的4K文件所佔的操作比例是最大的,故而固態硬碟的4K隨機讀寫性能對實際體驗的影響非常大,而機械硬碟的4K性能遠遠低於固態硬碟,這也是為什麼Windows7之後機械硬碟會越來越卡頓,我們要使用固態硬碟作為系統盤的原因。
**統計包含的軟體如下:
Adobe Photoshop CC 2017
Adobe Premiere CC 2017
Autodesk AutoCAD 2019
Autodesk MAYA 2019
Autodesk 3DsMax 2019
Biovia Materials Studio 2018 CASTEP
Microsoft Office 365 (Version1908)
Microsoft Visual Studio 2017 Professional
Mathworks MATLAB R2019a Academic (with all Simulink)
OriginLab OriginPro 2019 學習版