為什麼資料夾刪除不並行?

為什麼資料夾刪除不並行?

當我按住 Shift 鍵並刪除一個大資料夾時,我看到以下 CPU 使用情況:

在此輸入影像描述

並非所有盒子都被使用。這效率低嗎?

透過分而治之,這對我來說似乎很容易並行化。我嘗試手動選擇並刪除一半的內容,然後刪除另一半,這使得更多的盒子被填滿。

我聽說回收表現出不同的行為,儘管我自己沒有測試過。

答案1

現代檔案系統試圖確保在寫入期間始終保持資料完整性。過去我聽說這被稱為“原子”寫入,因為它要么成功完成,要么根本不完成。

您一次只能向實際磁碟發送一個命令,忽略磁碟佇列和緩存,並且刪除操作將是多次讀取(掃描目錄等),依此類推,然後才能從目錄樹中刪除該項目並標記空間自由。

結合現代日誌記錄(允許磁碟任務根據中斷時間向後或向前滾動),瓶頸很可能在於磁碟控制器的實際排隊任務(讀取/查找/寫入)。

將某些內容移至回收站只是移動一個資料夾,這樣「刪除」某些內容的操作要少得多,因為您只是修改資料夾結構而不是將大量資料標記為不再需要。不過,當您清空回收站時,您最終將再次執行釋放磁碟空間的任務。

答案2

此操作的瓶頸不是 CPU,而是磁碟。您無法讓 CPU 的運作速度快於磁碟儲存變更的速度。因此,CPU 會等待磁碟完成其工作,然後再提交更多工作。

對於許多小檔案的操作,這種影響尤其明顯,其中檔案系統開銷大於檔案本身的大小,因此它們的處理時間似乎異常長。

相關內容