IBM GPFS:递归删除文件非常慢

IBM GPFS:递归删除文件非常慢

为了在我们的 IBM GPFS 集群中递归删除文件,我们使用简单的 unix 命令,例如:

rm /my/directories -fr

然而删除操作需要花费很长时间。

问题是我们的分布式应用程序(基于 Spark)需要花费一些时间one hour才能完成。但随后,它还会took about an other hour删除由 Spark 等分布式应用程序生成的临时文件。

因此,全局工作负载效率很低。可能是因为该rm命令必须列出每个子目录。

无论如何,您知道如何使用 GPFS 有效地删除整个目录(和子目录)吗?

IBM 是否可以给出特殊命令来执行此操作?

答案1

我认为您无法加快此过程,因为“rm”会触发分布式文件系统的大量元数据更新,并且需要相当长的时间才能完成。您可以尝试向同一文件系统中的某个临时文件夹发出“mv”(!!!),然后在后台执行实际的“rm”。

答案2

您可以使用比‘rm’快得多的 gpfs​​ 策略。

这是一个例子,例如我想删除 /gpfs2/mysql/performance_schema/ 下的所有文件

该策略文件为:

规则‘my_del’删除 DIRECTORIES_PLUS 其中 PATH_NAME 类似于‘/gpfs2/mysql/performance_schema/%’

然后我可以使用以下命令运行该策略:

mmapplypolicy /gpfs2/mysql -P del.pol

您可以参考这两个链接了解有关策略和 DELETE 规则的一些解释:

https://www.ibm.com/support/knowledgecenter/STXKQY_5.0.5/com.ibm.spectrum.scale.v5r05.doc/bl1adv_polextip.htm

https://www.ibm.com/support/knowledgecenter/STXKQY_5.0.5/com.ibm.spectrum.scale.v5r05.doc/bl1adv_rule_syntaxdiagrams.htm

实际上在 /usr/lpp/mmfs/samples/ilm 下有一个 'mmfile' 工具。您需要先通过 :make -f mmfindUtil_processOutputFile.sampleMakefile 编译 mmfindUtil_processOutputFile

mmfile 具有与“find”完全相同的语法,但它使用 GPFS 策略,因此它的运行速度比 GPFS 文件系统的 find 快得多。例如,您可以使用:mmfind sub1/| xargs rm -f 来删除文件。

您也可以关注我@guanglei_li,并可以通过“https://www.ibm.com/mysupport/s/”获得更多支持。

相关内容