大家最常看到的 SSD 跑分軟體 CrystalDiskMark ,選購 SSD 看八個框框,分數越高就越好但你知道這幾個框框分別代表什麼意思嗎?
▲ 在進入本文前,與兩個常見的效能指標
循序 (Sequential )讀/寫
舉例將數支 1GB 的影片寫入硬碟,作業系統操作流程為
1.從 SSD 的 Map Table 標記要使用的 blocks(磁區 1~10,000)。 2.抹除 ( Garbage Collection ,GC)一個空間。 3.將資料寫入到標示 blocks 中。
假設第一部影片磁區位置為 1~1,000、第二支則為 1,001~2,000 依此類推到到十支的 10,000 磁區位置。如果使用上常將數十 GB 檔案檔案複製來複製去,循序性讀/寫將會是一個重要的效能指標。
4kB 讀/寫
有遇過作業系統更新,明明就幾百 MB,更新卻要等個五到十分鐘,說穿了,更新是置換眾多的動態程式庫,檔案雖然不大但為數眾多,一次更新會置換上百甚至上千個檔案,如果 4kB 效能不佳,就看到 CPU、記憶體空載,電腦卻非常卡 IO 瓶頸。
4kB 讀/寫就是泛指零碎小檔操作效能,如遊戲、作業系統、各式程式,都由數以千計的動態程式庫組成,空有CPU、GPU效能卻沒有匹配的 IO 效能,就會出現過地圖跑條很慢、無接縫地圖遊戲會莫名卡頓等等現象。
回到CrystalDiskMark 八個框框,左上第一個框框 Seq Q32 T1,代表著循序讀/寫,那 Q32 跟 T1 代表什麼意思呢?
將一顆硬碟比喻成車站,佇列深度 Queue Depth(QD)為列車幾節車廂、執行緒為不同月台 Thread
假設一個月台最多可以容納 200 人同時上下車,而八節列車(QD8)可以載客 500 人
同一時間要下車就需要花 2.5(500/200 )個單位時間,才能上全部旅客下車,這就是 IO 延遲(Latency)
如果嫌上車時間太久,那就蓋兩個月台(2 Thread),兩台四節列車(QD4)下乘客
這樣就只要花 1.25(500/400)個單位時間就可以全部下完車嗎?
當然沒那麼簡單,一個月台旅客僅需要知道往月台走就可以搭到車
但月台越多,乘客要去研究哪個月台,付出的代價(CPU運算代價)會更多
想想是在台北車站轉車會比較複雜,還是在東京車站轉車比較複雜,應該不難理解。
總結
●QD 越多,延遲(Latency)越高。 舉例:QD2 延遲一定比 QD1 高 ●Thread 越多 CPU 效能越吃重,程式也更難開發維護。 ●低 QD 可以達到更高的吞吐量(Throughput)為佳,例 QD1 = 100MB/s > QD1 = 50MB/s
附上 CrystalDiskMark 跑分 ●4KiB QD1 Thread1 R 179.2(100%) / W 169.3 (100%) ●4KiB QD2 Thread1 R 411.3(229%) / W 359.9 (212%) ●4KiB QD1 Thread2 R 296.5(165%) / W 275.9 (162%) 從分數可以簡單看到,提高 QD 深度比多開 Thread 的效能成長幅度更高
|