作者:-1????發布時間:2023-07-05 16:50 ????瀏覽次數 :
大概總結一下,如果你不做preconditioning的話,直接拿來測或者測了沒有寫入到的地方,SSD的FTL可能仍然沒有把顆粒上的這塊空間標記為寫入過,結果就是測試根本沒有落盤(即沒有讀寫到存儲介質本身),硬盤閉著眼反饋00或者FF,直接在主控里解決了。甚至如果preconditioning做的不好的話,SSD仍然可能找出規律使得測試結果出錯。目前已知有2個人因為這個問題測出了遠高于SSD性能標稱的數值,對于不能訪問github的人,引用一下上述討論的重點。
同時作為驗證,使用指令建立一個空的20GB文件而不進行數據寫入(即不進行preconditioning):
fsutil file createnew E:\iobw2.tst 21474836480
這時使用diskspd和iometer直接測試這個文件,就會得出一個100多萬IOPS(約4GB/s)的結果。這個結果遠遠超過了pcie 3.0×4 SSD的隨機帶寬,甚至大幅高于理論順序帶寬。顯然這個結果是錯誤的。當使用下面指令將數據寫入這個文件也就是正常進行precondition以后,測試結果就會回歸正常。
當然你也可以不格式化直接不斷寫入來做preconditioning,SNIA的SSSPTS建議是全盤寫入2遍。但是這樣寫2遍下來以后,SSD正在進行垃圾回收(GC),而且你并不知道它什么時候會停,有時候通電放置幾小時以后測出來的性能仍然不正常。你也可以指定測試區域然后對這個區域進行preconditioning,但是這樣的測試會非常復雜,SSD不確定會不會認為寫入的數據是有效數據,而且有意避開系統環境這個影響因素一般也沒什么實際意義。
所以個人建議測試SSD首先創建寫入了full random或者pseudo random的隨機數據文件,排除一切潛在威脅,然后進行測試。當然此次測試也會包含RAW的情況作為對比。