IBM GPFS:遞歸刪除文件非常慢
要在我們的 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 規則的一些說明:
實際上在 /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/”獲得更多支持。