Nesta página, mostramos como otimizar o desempenho em buckets com o namespace hierárquico ativado.
Como listar objetos
Veja a seguir as considerações de desempenho para listar objetos:
- Em buckets com namespace hierárquico ativado, listar todos os objetos do
bucket inteiro ou com um prefixo consome muitos recursos, já que a operação precisa
percorrer cada pasta e subpasta, de forma semelhante ao comando
ls -rem um sistema de arquivos. Consequentemente, quanto mais pastas houver no bucket, mais lenta será a listagem de objetos. Um grande número de pastas vazias também pode afetar negativamente o desempenho da listagem de objetos. Para evitar impactos negativos no desempenho, recomendamos que você maximize o número de objetos em cada pasta e exclua regularmente as pastas vazias. - Listar ou recuperar objetos e subpastas em uma pasta específica usando
um delimitador e um prefixo específico é mais eficiente em buckets com
namespace hierárquico ativado, já que os objetos são organizados em uma estrutura
de pastas. Para otimizar o desempenho da listagem ao usar um delimitador e um prefixo específico, defina o parâmetro
includeFoldersAsPrefixes. Caso contrário, o Cloud Storage vai realizar outras verificações para excluir pastas vazias, o que pode deixar a operação mais lenta. Para mais informações sobre como usar oincludeFoldersAsPrefixesao listar objetos, consulte Como listar objetos.
Gerenciamento de pastas
Para um gerenciamento eficiente de pastas, recomendamos o seguinte:
- Pré-criar estrutura de pastas:em vez de depender da criação automática de pastas durante as operações de upload, regravação e composição de objetos, use a operação de criação de pastas para obter a estrutura de pastas pretendida com antecedência. A pré-criação da estrutura de pastas melhora a consistência e a previsibilidade do desempenho.
- Maximize a proporção de objetos por pasta:busque uma proporção alta de objetos por pasta, já que isso reduz a sobrecarga associada à criação e ao gerenciamento de pastas.
- Exclua pastas vazias regularmente:elas podem se acumular, especialmente
ao usar o Gerenciamento do ciclo de vida de objetos ou excluir objetos sem
excluir explicitamente as pastas pai. As pastas acumuladas podem afetar
o desempenho da operação de listagem de objetos e outras operações relacionadas
a pastas. Confira a seguir alguns dos métodos que podem ser usados para excluir
pastas vazias:
- Ao usar o Cloud Storage FUSE ou o conector do Cloud Storage para interagir com um bucket com namespace hierárquico, a exclusão de um diretório exclui a pasta correspondente no bucket.
- É possível usar uma exclusão recursiva para excluir pastas automaticamente ao usar o console do Google Cloud ou a Google Cloud CLI.
- Use o script
delete_empty_folders.pypara excluir periodicamente pastas vazias usando o processamento paralelo. O script oferece uma opção para segmentar um prefixo de caminho de pasta específico, o que permite que o script exclua pastas em um subconjunto da estrutura de diretórios do bucket. Além disso, o script exclui todas as pastas vazias (criadas de forma implícita ou explícita), incluindo pastas gerenciadas e as políticas do IAM associadas. Para detalhes sobre como usar o script, consulte o README no GitHub.