ext4 分割區上的 rm 效能緩慢

ext4 分割區上的 rm 效能緩慢

刪除在我看來數量適中的文件需要很長時間。例如:

$ pv linux-3.0.16.tar.bz2 | tar xj
73.2MB 0:00:16 [4.55MB/s]
$ pv linux-3.0.16.tar.bz2 | tar xj
73.2MB 0:03:16 [ 382kB/s]

分區格式為ext4,mounted relatime,error=remount-ro。刪除檔案期間不會出現處理器利用率峰值。有人知道會發生什麼事嗎?

更新:執行上述指令或rm -rf以 root 身分如預期執行... 更新: 弄清楚了。該盒子的系統管理員在該盒子上安裝了數量驚人的全域審核規則。刪除它們即可解決問題。

答案1

當您替換或刪除檔案時,它會簡單地執行以下操作:

  1. 找到該檔案的索引節點。
  2. 檢查單一檔案的權限、使用者和群組。
  3. 如果該檔案是目錄,則也刪除該目錄中的檔案(對每個檔案重複 1 - 4)。
  4. 取消檔案及其索引節點的連結。

這顯然會大大降低效能,因為它比僅僅添加新的索引節點並將檔案寫入磁碟要困難得多。這是它作為索引節點表列表的副作用,如果它是索引節點樹,它可以只刪除整個分支。雖然這不會改變任何事情,因為你正在解壓縮,因為解壓縮將逐個檔案進行,無論 inode 的儲存方式如何...

以 root 身分運行會省去步驟 2,這可能會也可能不會有很大的區別。


您是否嘗試過安裝回 ext3 並比較執行時間?

因為 ext4 由於使用了範圍而刪除速度更快。如果能再慢一點就太好了…

相關內容