我有一个包含集成测试临时文件的目录,其结构如下:
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 个测试:find
和exec rm -rf
,find -delete
以及那个奇怪的 perl 脚本,然后对两个目录并行运行。
Perl 效果最好(大约 4 分钟),其次是find -delete
(4.10),然后是第一个选项 4.50。
并行化没有给出预期的结果。所有选项的运行速度都比较慢。而且这仅仅是同时运行两个目录。我认为,提供更多目录会导致运行时间更长。
我没有尝试 GNU 实用程序,parallel
因为我没有 root 访问权限(清理脚本由 Jenkins 运行),所以我无法安装它。
去除众多大的文件很多的尽快恢复目录?
答案1
使用 ext3 文件系统,效果并不明显。请参阅这些图表经过长期调查发现此 serverfault 线程。无论他们做什么都只花几分钟。
如果您要删除整个树,并且可以为其指定一个卷,则可以编写脚本来删除逻辑卷并每次重新创建文件系统。如果真的到了这个地步,您不妨尝试使用不同的文件系统。