我有 i5 第六代處理器,配備 8GB RAM、4TB 輔助硬碟和 500GB 主硬碟。 4tb硬碟採用ntfs格式。我的目標是在磁碟上寫入大量文件。磁碟是SATA 7200RPM,必須在相同的寫入檔案上測試壓縮演算法。將寫入磁碟的檔案如果使用 zlib 壓縮較小,範圍將在 12-20KB 左右。我編寫了一個 bash 腳本來製作 500000 個相同的副本以用於測試目的,但發現該目錄中本身寫入了 7-8 個文件,速度為 100kB/s,而提到的速度要高得多。我想達到每秒 100 個檔案的速度。我不知道該怎麼辦。請建議我達到最高寫入速度。
答案1
您的瓶頸是檔案系統,而不是磁碟。文件系統(及其實現)在文件操作(創建/刪除等)方面的擴展程度差異很大,具體取決於實現和設計。當順序寫入單一檔案時,您可能已經獲得了顯著更高的吞吐量,而不是將相同數量的資料寫入需要大量檔案系統操作(開啟/建立)的不同檔案。
如果必須執行大量檔案操作,則需要選擇在 Linux 上比 NTFS 具有更好擴展性的檔案系統。 XFS 或 EXT4 是性能良好的可靠選擇。
有很多基準比較指出相同點的性能差異。
答案2
如果您編寫小文件,您主要是測試檔案系統開啟/關閉檔案的速度(可能還有一些磁頭移動延遲)。透過在 Linux 上使用 NTFS,您並沒有使用最佳效能的檔案系統。如果您想測試演算法的速度,請使用本機檔案系統(ext4 ...)和大檔案。然後,如果您在 NTFS 上獲得較慢的結果,您就會知道它們來自哪裡。