Ibm

IBM GPFS:遞歸刪除文件非常慢

  • October 21, 2020

要在我們的 IBM GPFS 集群中遞歸刪除文件,我們使用簡單的 unix 命令,例如:

rm /my/directories -fr

然而,刪除的時間很長。

問題是我們的分佈式應用程序(基於 Spark)one hour需要完成。但是,它也會took about an other hour刪除由 Spark 等分佈式應用程序生成的臨時文件。

因此,全域工作負載非常低效。可能是因為該rm命令必須列出每個子目錄..

無論如何,您知道使用 GPFS 有效刪除整個目錄(和子目錄)的方法嗎?

可能是 IBM 給出了一個特殊的命令來做到這一點?

我不認為你可以加快這個過程,因為“rm”會觸發分佈式文件系統的大量元數據更新,而且它們需要相當長的時間才能完成。您可以嘗試向同一文件系統中的某個臨時文件夾發出“mv”(!!!)並在後台執行實際的“rm”。

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

這是一個範例,例如,我想刪除 /gpfs2/mysql/performance_schema/ 下的所有文件

策略文件是:

RULE ‘my_del’ DELETE DIRECTORIES_PLUS WHERE PATH_NAME LIKE ‘/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/”獲得更多支持。

引用自:https://serverfault.com/questions/1036338