Se você estiver usando o sistema de arquivos ext3, considere mudar para o ext4.
O Ext3 pode demorar a excluir arquivos grandes porque armazena a localização de cada bloco individual de 4k: um arquivo 50GiB (50 * 1024 ^ 3 bytes) ocupa 13107200 blocos, cada um dos quais é registrado na tabela de inodes como um número de bloco de 32 bits , para um total de 50MiB de dados de contabilidade apenas para acompanhar onde o conteúdo do arquivo está localizado no disco. Essa grande lista de blocos pode estar espalhada por vários blocos indiretos , os quais precisam ser atualizados quando o arquivo é excluído. O disco que busca acessar todos esses blocos indiretos é provavelmente o que está causando o atraso.
O Ext4, por outro lado, aloca arquivos em "extensões" de até 128MiB. Esse arquivo 50GiB pode ser gravado na tabela de inodes usando apenas 400 registros de extensão, em vez de 13107200 números de bloco individuais, o que reduz drasticamente a quantidade de E / S de disco necessária ao excluir o arquivo.
Observe que, se você converter um sistema de arquivos ext3 existente em ext4, novos arquivos serão alocados usando extensões, mas os arquivos existentes ainda usarão listas de bloqueio. Você pode usar o chattr +e
comando para realocar um arquivo existente usando extensões; Em termos de desempenho, é comparável a fazer uma cópia do arquivo e excluir o original.