Problemas com Exclusão de Buckets
Deleção de Bucket Demorando Mais que o Esperado
- Sintoma
A exclusão de um bucket com um grande volume de objetos está demorando mais do que o esperado.
- Causa
A operação pode estar sendo executada com baixo grau de paralelismo, resultando em um tempo de processamento mais longo.
- Solução
Recomenda-se a implementação de um processo de exclusão com maior grau de paralelismo, com o objetivo de otimizar o tempo de processamento.
O uso de parâmetros como --workers
, max_concurrent-requests
e --transfers
deve ser feito com
cautela. Valores muito altos podem ocasionar erros ou sobrecarga do sistema. Ajuste esses valores
gradualmente e monitore o desempenho para encontrar a configuração ideal para o seu caso.
- MGC-CLI
- AWS-CLI
- RCLONE
A MGC-CLI utiliza a flag --workers
para definir o número de threads paralelas.
Por padrão a MGC-CLI utiliza o valor de workers em 4, para aumentar o nivel de paralelismo considere incrementar conforme o exemplo abaixo:
mgc object-storage buckets delete bucket-name --recursive --workers 16
Lembrando que esse comando não deleta as versões do bucket versionado. Para isso, veja este documento.
A AWS-CLI permite ajustar a configuração max_concurrent_requests
no arquivo de configuração para aumentar
o número de requisições simultâneas.
A configuração max_concurrent_requests
pode ser definida no arquivo de configuração do AWS CLI
(~/.aws/config
). Aqui está como você pode configurá-lo:
- Abra ou crie o arquivo de configuração:
nano ~/.aws/config
- Adicione ou modifique a configuração:
[profile your-profile]
s3 =
max_concurrent_requests = 16
- Rode o comando
rb
com a flag--force
para deletar todos os objetos do bucket:
aws s3 rb s3://bucket-name --force
Substitua your-profile
pelo nome do perfil AWS que você está usando. Se você não estiver usando
perfis, pode usar a seção [default]
.
Lembrando que esse comando não deleta as versões do bucket versionado. Para isso, veja este documento.
Por padrão a RCLONE utiliza o valor de transfers em 4, para aumentar o nivel de paralelismo considere incrementar conforme o exemplo abaixo:
O RCLONE usa a flag --transfers
para controlar o número de transferências simultâneas.
rclone purge remote:path --transfers 16
Este comando deleta todo o bucket e seus objetos, incluindo versões.
Recomendamos ajustar esses parâmetros de acordo com a capacidade do seu hardware para encontrar o equilíbrio ideal entre a velocidade de upload e o uso de CPU e RAM. Teste diferentes configurações para otimizar o desempenho conforme suas necessidades.
Se ainda tiver alguma dúvida, não deixe de abrir um chamado de suporte.
Erro de Bucket not empty
- Sintoma
Você pode encontrar o erro The bucket you tried to delete is not empty
ou Error: the bucket contains multiple versions of objects.
ao tentar deletar um bucket e seus objetos.
- Causa
A operação de exclusão recursiva não remove versões antigas dos objetos, apenas a versão atual.
- Solução
Para prosseguir com a exclusão do bucket, será necessário apagar todas as versões antigas dos objetos. Siga as instruções neste documento para realizar essa tarefa.
Se ainda tiver alguma dúvida, não deixe de abrir um chamado de suporte.