Para excluir arquivos recursivamente em nosso cluster IBM GPFS, usamos o comando unix simples como:
rm /my/directories -fr
No entanto, as exclusões são muito longas para serem feitas.
O problema é que nossos aplicativos distribuídos (baseados no Spark) demoraram muito one hour
para serem feitos. Mas também took about an other hour
para descartar arquivos temporários gerados por aplicativos distribuídos como o Spark.
Portanto, as cargas de trabalho globais são muito ineficientes. Pode ser porque o rm
comando tem que listar todos os subdiretórios ..
De qualquer forma, você conhece maneiras de eliminar com eficiência um diretório inteiro (e subdiretórios) com o GPFS?
A IBM pode dar um comando especial para fazer isso?
Eu não acho que você possa acelerar esse processo, pois “rm” aciona muitas atualizações de metadados para os sistemas de arquivos distribuídos, e elas levam algum tempo para serem concluídas. O que você pode tentar é emitir “mv” para alguma pasta temporária dentro do mesmo sistema de arquivos (!!!) e fazer um “rm” real em segundo plano.
Você pode usar a política gpfs que é muito mais rápida que 'rm'.
Aqui está um exemplo, por exemplo, eu quero remover todos os arquivos em /gpfs2/mysql/performance_schema/
O arquivo de política é:
REGRA 'my_del' DELETE DIRECTORIES_PLUS WHERE PATH_NAME LIKE '/gpfs2/mysql/performance_schema/%'
Então eu posso executar a política com:
mmapplypolicy /gpfs2/mysql -P del.pol
Você pode consultar estes dois links para obter algumas explicações sobre a política e a regra 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
Na verdade, existe uma ferramenta 'mmfile' em /usr/lpp/mmfs/samples/ilm. Você precisa primeiro compilar mmfindUtil_processOutputFile por :make -f mmfindUtil_processOutputFile.sampleMakefile
mmfile tem exatamente a mesma sintaxe que 'find', mas usa a política GPFS para que seja executado muito mais rápido do que find para o sistema de arquivos GPFS. por exemplo, você pode usar: mmfind sub1/ | xargs rm -f para remover os arquivos.
Você também pode me seguir em @guanglei_li e obter suporte adicional em "https://www.ibm.com/mysupport/s/".