Estou tentando obter um relatório diário de tamanho de arquivo em um conjunto de dados de vários petabytes de dados genômicos.
Nosso relatório atual usa várias invocações de du
sobrepostas para alcançar o resultado, mas leva mais de 24 horas para ser executado. Eu estou procurando uma maneira de fazer isso de forma mais eficiente / rápida / 'limpa'.
atualmente fazemos:
# broad overview of dozens of projects + grand total
du -chd1 /petastorage/projects/
# detailed look at some 'special' projects,
# each of these has huge sub-dirs we want to track individually
du -hd1 /petastorage/projects/special_project_A/
du -hd1 /petastorage/projects/special_project_B/
du -hd1 /petastorage/projects/special_project_C/
O que me incomoda é que special_project_[ABC]
são rastreados duas vezes, uma vez na visão geral geral, uma vez para a visualização detalhada. Como esses projetos especiais são responsáveis por uma grande parte dos dados, rastreá-los duas vezes é, provavelmente, uma parte significativa do tempo de execução.
Além disso, como estamos falando de petabytes, não acredito que qualquer nível de cache do sistema de arquivos acelere as chamadas de repetição.
Eu tentei 'otimizar' para
%código%
mas parece que du -d1 /petastorage/projects/ /petastorage/projects/special_project_[ABC]/
é inteligente o suficiente para perceber que os projetos especiais são diretórios filhos do primeiro diretório e, portanto, os 'otimiza' para fora do relatório. Gah!
Alguém tem uma ideia de como eu posso convencer du
a rastrear meus petabytes apenas uma vez, exibindo ambos os projetos individualmente, bem como a visão detalhada (um nível mais profundo) dos três 'projetos especiais'
nota: o du-output atual já é colocado em algum tipo de pipe uniq para torná-lo mais agradável e sem duplicatas no relatório de e-mail, portanto, soluções envolvendo pós-processamento são aceitáveis. Qualquer tempo de execução de pós-processamento é zero comparado a petabytes de ferrugem.
Plano de fundo no caso de ser importante: esta é uma montagem do NFSv3 para nós de armazenamento do EMC-isilon, montada no OpenSuse 11.4.
Todos os projetos atualmente compartilham um único conjunto de armazenamento nos isilons para que o espaço livre possa ser deslocado entre os projetos. Mover os projetos 'especiais' para seus próprios sistemas de arquivos para que possamos 'trapacear' com du
é inviável devido ao seu tamanho.