
答案1
4k 讀取將是驅動器可以做的最困難的事情。它們是驅動器能夠處理的最小區塊大小之一,而且驅動器無法預先載入大量數據,事實上,如果驅動器預先載入邏輯打算讀取任何內容,它們的效率可能會非常低大於4kb。
「正常」驅動器讀取更有可能大於 4kb,因為很少有檔案那麼小,甚至頁面檔案也可能以大塊的形式讀取,因為程式「僅」讀取資料會很奇怪4KB 記憶體已調出。這意味著驅動器嘗試執行的任何預加載實際上都會損害驅動器吞吐量。
4K 讀取可能會通過驅動器緩衝區,但測試的「隨機」部分使它們完全無法預測。控制器不會知道驅動器何時可能再次需要更常見的“大”讀取。
另一方面,4K 寫入可以有效率地進行緩衝、排隊和順序寫出。驅動器緩衝區可以完成許多其設計目的的捕獲和寫入工作,磨損均衡器甚至可能將所有這些 4K 寫入分配到同一個驅動器擦除塊,偶爾會將 4K“隨機”寫入轉換為更接近順序寫入的東西。
事實上,我懷疑這就是「4K-64Thrd」中所發生的情況,「64-Thrd」是顯然使用了較大的隊列深度,從而向驅動器發出信號,表明它有大量數據需要讀取或寫入。這會觸發大量寫入集群,從而接近驅動器的順序寫入速度。執行 4K 寫入仍然會產生開銷,但現在您可以充分發揮緩衝區的潛力。在測試的讀取版本中,驅動器控制器現在認識到它處於非常恆定的重負載下,停止預加載數據,可能會避開緩衝區,而是切換到“原始”讀取模式,再次接近順序讀取速度。
基本上驅動控制器可以做某物使 4K 寫入更有效率,特別是如果它們的集群在相似的時間到達,而它無法做任何事情來使單身的4K 讀取效率更高,特別是當它嘗試透過將資料預先載入到快取中來優化資料流時。
答案2
其他答案已經解釋了為什麼寫作可能比閱讀更快;我想補充一點,對於這款驅動器來說,這是絕對正常的,因為您可以在評論中找到基準測試來證實這一點。
ArsTecnica 的評論
藝術技術已檢查該驅動器,包括您的版本 (512 GB) 和 2 TB 版本:
(此圖在評論中不會立即可見,它是第一個圖庫中的第五個,您必須單擊它)
這 2 個型號的性能非常相似,它們的數字與您的類似:驅動器的讀取速度為 37 MB/s,寫入速度為 151 MB/s。
AnandTech 的評論
安南德科技也審查了該驅動器:他們使用 2TB 模型,對隊列深度為 1、2 和 4 的測試結果進行平均。
此磁碟機的讀取速度為 137 MB/s,寫入速度為 437 MB/s。該數字比您的數字高得多,但這可能是由於隊列深度較高所致。無論如何,寫入速度是讀取速度的 3 倍,就像你的情況一樣。
電腦世界的評論
另一篇評論,作者:電腦世界:他們測試了 1 TB 版本,4K 的結果是讀取 30 MB/s,寫入 155 MB/s:
寫入速度與你的一致,但這裡驅動器讀取速度更慢。結果是比例是五比一,而不是三比一。
結論
評論證實,對於該驅動器,隨機 4K 的寫入速度比讀取速度快得多是正常的:根據測試,甚至可以快 5 倍。
你的驅動沒問題。沒有理由相信它有故障,或者您的系統有問題。
答案3
SSD 控制器將寫入內容快取到板載 NVRAM 中,並在適當的時候將其刷新到快閃記憶體媒體。因此,寫入延遲就是快取存取延遲,通常為 20us。相反,讀取是透過媒體提供的,訪問時間最多為 120-150us。
答案4
擴展 Andrey 的答案,您需要查看 SSD 向電腦發出操作完成訊號之前所涉及的開銷。
對於寫入,資料只需寫入內部 RAM 快取。隨後,它將與檢查、糾錯和定位所需的其他 4k 區塊和元資料一起寫入快閃記憶體。
對於讀取,SSD 必須先定位資料。電腦要讀取的位置稱為邏輯位址,與快閃記憶體中資料的實體位置沒有直接關係。 SSD 根據快閃記憶體的幾何結構(單元的排列方式)、壞塊重新映射、磨損均衡和各種其他因素,將邏輯位址轉換為實體位址。然後,它必須等待任何其他操作完成,然後才能從閃存檢索數據,然後檢查數據,如果需要,重新讀取並應用糾錯,甚至可能在其他地方重新寫入整個區塊。
雖然寫入操作所花費的總時間可能比典型的讀取操作長,但 SSD 報告操作已完成到可以處理更多命令所需的時間較短。對於大塊,開銷不是限制因素,但對於許多小塊,它開始限制讀/寫速度。