File-Copy
複製到外部 NTFS 分區:一次複製多個文件時速度變慢
Linux 上的 NTFS(-3g) 比 Windows 上的 NTFS 性能要慢,我對此感到很平靜。我可以在 Windows 上以大約 100+ MB/s 的速度寫入外部 NTFS 格式的 USB 3.0 硬碟,而我必須在我的 Debian (Wheezy) 盒子上滿足 30 MB/s(給予或接受)。
然而,這不是問題所在。我發現(根據經驗)如果我想將 20 個文件從我的盒子復製到 HDD,複製以“正常”30 MB/s 開始,但逐漸減慢到可憐的 4 MB/s!然而,如果我一次複製 5 個文件(連續),則所有四個複製過程的複制速度都保持在 30 MB/s。順便說一句,這不是 Debian 特有的。我在 Fedora 和 Ubuntu 上觀察到了類似的行為。
我的問題是,這種行為正常還是我應該擔心?如果出現問題,我應該如何調試/修復它?
在執行並行副本時,您會看到驅動器磁頭尋軌延遲的影響。
對於大多數文件系統,包括 NTFS 和 ext
$$ 234 $$,數據儲存在驅動器上的不同位置。這裡的文件系統資訊,那裡的塊分配數據和那裡的文件數據方式。 寫入單個文件時,元數據的變化相對較少,因此頭部大多處於寫入數據塊的正確位置。當執行 20 個並發寫入時,磁頭必須在塊分配區域和數據區域之間衝刺大約 20 倍的頻率,並且磁碟磁頭尋軌的測量時間為 10 毫秒。
當寫入本機文件系統時,可以通過搜尋完成的數量來採取一些自由(例如,將空閒列表的一部分副本保存在記憶體中,並且不經常將其寫入,從而節省了一堆搜尋)。我希望這同樣適用於 Windows 下的 NTFS,但 NTFS Linux 文件系統開發人員不能像這樣傲慢,選擇一致性而不是性能。