A remoção do que me parece ser um número moderado de arquivos leva muito tempo. Por exemplo:
$ pv linux-3.0.16.tar.bz2 | tar xj
73.2MB 0:00:16 [4.55MB/s]
$ pv linux-3.0.16.tar.bz2 | tar xj
73.2MB 0:03:16 [ 382kB/s]
A partição está formatada como ext4, montada em relatime,error=remount-ro. Não há pico de utilização do processador durante a remoção de arquivos. Alguém tem alguma ideia do que pode estar acontecendo?
Atualizar: A execução dos comandos acima ou rm -rf
como root funciona conforme o esperado...
atualizar: descobri. O administrador de sistema da caixa instalou uma quantidade ridícula de regras de auditoria globalmente na caixa. Removê-los corrige isso.
Responder1
Quando você substitui ou exclui um arquivo, ele faz o seguinte de maneira simplista:
- Encontre o inode do arquivo.
- Verifique as permissões, usuário e grupo do arquivo individual.
- Remova também os arquivos do diretório se o arquivo for um diretório (repita 1 - 4 para cada arquivo).
- Desvincule o arquivo e seu inode.
Obviamente, isso diminuirá muito o desempenho, porque é muito mais difícil do que apenas adicionar um novo inode e gravar um arquivo no disco. Este é um efeito colateral de ser uma lista de tabelas de inodes; se fosse uma árvore de inodes, poderia simplesmente excluir um ramo inteiro. Embora isso não mude nada enquanto você está descompactando, o descompactar fará isso arquivo por arquivo, independentemente da maneira como os inodes são armazenados ...
Executar como root elimina a etapa 2, o que pode ou não ser uma grande diferença.
Você já tentou montar novamente no ext3 e comparar o tempo de execução?
Porque o ext4 exclui mais rápido devido ao uso de extensões. Seria notável se fosse mais lento...