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,安装 relatime,错误=remount-ro。删除文件期间处理器利用率没有激增。有人知道可能发生了什么吗?

更新:运行上述命令或rm -rf以 root 身份运行均可按预期执行... 更新:搞清楚了。该盒子的系统管理员在盒子上全局安装了大量审计规则。删除它们可以解决问题。

答案1

当您替换或删除文件时,它会简单地执行以下操作:

  1. 查找该文件的 inode。
  2. 检查单个文件的权限、用户和组。
  3. 如果文件是目录,也删除目录中的文件(对每个文件重复 1 - 4)。
  4. 取消文件与其 inode 的链接。

这显然会大大降低性能,因为这比添加新 inode 并将文件写入磁盘要困难得多。这是 inode 表列表的副作用,如果是 inode 树,则只需删除整个分支即可。虽然这不会改变您正在解压的内容,因为解压将逐个文件进行,而不管 inode 的存储方式如何...

以 root 身份运行会省去第 2 步,这可能会或可能不会造成很大的差异。


您是否尝试过重新在 ext3 中安装并比较执行时间?

因为 ext4 删除速度更快,这是因为使用了区。如果它更慢,那才是值得注意的...

相关内容