删除大量大文件的最快方法

删除大量大文件的最快方法

我有一个包含集成测试临时文件的目录,其结构如下:

TestTemp --- Test01 (~1.5TB)  --- Subdirectory01 (~100GB) -- Destination JSON (1-100MB)
                              --- Subdirectory02          -- Destination JSON files
                              --- Subdirectory03          -- Destination JSON files
                              ...
                              --- Subdirectory15 (about 10-15 dirs)

         --- Test02
         --- Test03
         ...
         --- Test15 (about 5-7 directories)

总计约为10TB。

文件系统是 ext3,无法将此目录作为驱动器处理。我正在关注本文,但是这一个更多的是关于大但少的文件。

我尝试对每个选项运行 6 个测试:findexec rm -rffind -delete以及那个奇怪的 perl 脚本,然后对两个目录并行运行。

Perl 效果最好(大约 4 分钟),其次是find -delete(4.10),然后是第一个选项 4.50。

并行化没有给出预期的结果。所有选项的运行速度都比较慢。而且这仅仅是同时运行两个目录。我认为,提供更多目录会导致运行时间更长。

我没有尝试 GNU 实用程序,parallel因为我没有 root 访问权限(清理脚本由 Jenkins 运行),所以我无法安装它。

去除众多大的文件很多的尽快恢复目录?

答案1

使用 ext3 文件系统,效果并不明显。请参阅这些图表经过长期调查发现此 serverfault 线程。无论他们做什么都只花几分钟。

带扩展或 xfs 的 ext4 可能更快

如果您要删除整个树,并且可以为其指定一个卷,则可以编写脚本来删除逻辑卷并每次重新创建文件系统。如果真的到了这个地步,您不妨尝试使用不同的文件系统。

相关内容