作者: SSD攻城獅
想要和本文作者還有《大話存儲》作者冬瓜哥、《PCI Express體系結構導讀》作者王齊、《蛋蛋讀NVMe》作者蛋蛋等全世界的大牛討論SSD及存儲相關技術?加nanoarch為微信好友,拉你進ssdfans微信群 。
歡迎給ssdfans投稿,投稿就能加入ssdfans作者群,和冬瓜哥,蛋蛋等大咖切磋武藝,還有稿酬拿.
SNIA給Client SSD與Enterprise SSD都制定了Performance test (性能測試)的規範,可以到其網站 www.snia.org 下載。
要進行SSD的Performance Test,首先要理解幾個關鍵概念。
FOB:Fresh Out of Box, 指的是剛開封全新的盤,此時SSD的性能類似於悟飯同學的憤怒形態,戰鬥力爆表但不持久,並不是這塊盤在未來正常使用過程中的真實能力。
Transition:經過一段的讀寫,戰鬥力逐步降低,逐步趨向於穩定狀態,這個過程稱為轉換狀態。
Steady State: 戰鬥力數值穩定在一個區間,Performance相關的數據,例如Throughput(吞吐量),IOPS,Latency(延遲)都必須在Steady State下獲取,據此判斷到底是超級賽亞人,還是戰五渣。
看看下面這張圖,不同的盤Performance數據有所不同,但趨勢一樣 – 爆表à下降à穩定:
Steady Stage的官方計算方法 (x為測量窗口內某個時刻的Performance值):
[Max(x)-Min(x)]≤ Average (x) * 20%
And
Slope≤10%,整個測量區間內所有Performance數值的最佳線性擬合中的[Max(x)-Min(x)]≤ Average (x) * 10%
數學是體育老師教的,我把原文貼在這裡,大家幫我斧正。
Slop(x)is less than 10%: Max(x)-Min(x), where Max(x) and Min(x) are the maximum and minimum values on the best linear curve fit of the x-values within the measure windows, is within 10% of Ave(x) value within the measurement window.
接下來,另外幾個概念:
Purge (擦除): 每次進行Performance test前都必須進行Purge動作,目的是消除測試前的其他操作(讀寫,其他測試)帶來的影響(比如,一段小BS的隨機讀寫之後立即進行大BS的順序讀寫,這時候大BS的數據會比較差),從而保證每次測試時盤都是從一個已知的,相同的狀態下開始。簡單來說,可以把Purge理解為:讓盤迴到FOB狀態。
實現的Purge方法可以是:
Precondition:通過對盤進行IO使其逐步進入Stead State的過程,分兩步進行.
Active Range: 測試過程中對盤上LBA發送IO命令的範圍
Data pattern: Performance測試必須使用random data pattern (指向NAND Flash中寫入的數據)。
基本測試流程
Purge the device – 擦除SSD
Run Workload Independent Precondition – 比如用128K的BS順序把盤寫兩遍
Run Test (包括Workload Dependent Precondition)– 設置好相關參數(OIO/Thread, Thread count, Data Pattern等)開始進行Workload Dependent Precondition,最多跑25個round
假設25個round以內達到了Steady Status,例如第x次。那麼:
Round 1:x 稱為Steady Status收斂區間
Round (x-4):4 稱為測量區間(Measure Window)
如果25個round還沒有達到Steady Status, 可以選擇:
繼續步驟3直到達到Steady Status並記錄x
直接取x=25
注意事項: 步驟2到步驟3之間不可以中斷,停頓。
Performance測試項目包括,IOPS測試,Throughput 測試,Latency測試和飽和寫測試(可選)
以IOPS測試為例說明一下步驟:
Throughput測試和Latency測試的步驟大致相同,需要注意的是:
Throughput測試:只有兩個組合,BS=1024K Sequence Write和BS=1024K Sequence Read,用Sequence Write的值來判斷Steady Status
Latency測試:只使用3種RW Mix組合(100/0,65/35,0/100)和3種BS(8K,4K, 512Byte),另外需要把隊列數和線程數都設為1
飽和寫測試Write Saturation (WSAT) test,對SSD進行長時間的Random 4K寫操作,評測其經過長期寫入以後的Performance表現。
關於飽和寫測試,國外知名網站TechReport.com的弟兄們曾經花了18個月,拿了6塊不同廠商的SSD進行了慘無人道的,超過2PB的連續寫入操作。
原文連結:http://techreport.com/review/24841/introducing-the-ssd-endurance-experiment
中文連結(蛋蛋版):http://www.ssdfans.com/?p=672
偏執狂作者瘋狂寫,殺死了6塊SSD!請看:
SSD可靠嗎?
喜歡就請分享轉發!
不想錯過後續精彩文章?長按或掃描下面二維碼關注ssdfans就可以了!
ssdfans微信群介紹。
免費技術討論群:覆蓋了1600多位中國和世界華人圈SSD以及相關存儲行業的技術精英,行業大牛,還有各路攻城獅
ssdfans-Firmware-QA群:從事SSD Firmware和QA的攻城獅們在此討論技術
ssdfans人工智慧群:討論人工智慧和異構計算架構等技術問題
ssdfans-ASIC-FPGA群:晶片和FPGA相關的硬體開發人員技術討論群
ssdfans企業級:討論企業級存儲
ssdfans銷售群:買賣消費級,企業級SSD,NAND Flash都可以在這裡找到人
ssdfans工作求職群:SSD行業換工作,發招聘,要關注各大公司招聘信息,趕快來~
想加入這些群,請加nanoarch為微信好友,介紹你的暱稱-行業-職業,註明群名,拉你進群。
捨不得發讚賞就賞個舉手之勞,點擊下面的廣告吧!