Sugiro dividir os dados em várias partições, se isso for viável. Não importa quais ferramentas você use, varrer esses arquivos vai levar tempo. Se estivesse em partições separadas, você poderia pelo menos reduzir o problema a uma única partição primeiro. Mas isso pode não ser uma opção para o que você está fazendo.
du é provavelmente a melhor ferramenta para o que você está procurando. Aqui está como eu uso:
Se a estrutura do seu diretório se parece com:
/mount/1/abc/123/456/789,
/mount/1/def/stuff/morestuff/evenmorestuff
/mount/2/qwer/wer/erty
Eu corria:
du -s /mount/*/* | sort -n
Isso fornecerá o uso total de cada diretório de segundo nível, classificado por tamanho. Se levar muito tempo para ser executado, direcione-o para um arquivo e execute-o durante a noite.
Sua saída ficará assim:
10000 /mount/1/abc
20000 /mount/1/def
23452 /mount/2/qwer
Então você só espera que isso seja suficiente para ver onde estão os pontos problemáticos.
Se esse for um problema comum, você poderá executá-lo todas as noites quando seu sistema não estiver tão ocupado e salvar a saída em um arquivo. Então você imediatamente tem alguns dados recentes para observar quando você percebe o problema.
Uma outra opção que você pode analisar são as cotas - se esse for o armazenamento compartilhado e todas elas usarem contas de usuário diferentes, a configuração de cotas muito altas poderá impedir que processos descontrolados usem lotes de espaço de armazenamento.