Otimizar a performance em buckets com namespace hierárquico ativado
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Nesta página, oferecemos orientações sobre como otimizar a performance em buckets com
namespace hierárquico ativado.
Como listar objetos
Confira 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 exige muitos recursos, já que a operação precisa percorrer cada pasta e subpasta, semelhante ao comando ls -r em 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 um impacto negativo 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 a performance da listagem ao usar um delimitador e um
prefixo específico, defina o parâmetro includeFoldersAsPrefixes. Caso contrário, o Cloud Storage realiza outras verificações para excluir pastas vazias, o que pode deixar a operação mais lenta. Para mais informações sobre como usar o
includeFoldersAsPrefixes ao listar objetos, consulte Como listar objetos.
Gerenciamento de pastas
Para uma gestão eficiente de pastas, recomendamos o seguinte:
Pré-criação da estrutura de pastas:em vez de depender da criação automática de pastas durante as operações de upload, reescrita e composição de objetos, use a operação de criação de pastas para obter a estrutura desejada 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:procure uma proporção alta de objetos por pasta, já que isso reduz a sobrecarga associada à criação e ao gerenciamento de pastas.
Limite as solicitações de criação e exclusão de pastas:criar ou excluir
pastas exige mais recursos do que trabalhar com objetos individuais devido
à natureza hierárquica delas. Para garantir um desempenho adequado, o Cloud Storage limita essas operações a 1.000 solicitações por segundo para cada bucket. As solicitações que excedem esse limite não são explicitamente restritas, mas a disponibilidade de recursos determina se elas podem ser processadas com êxito.
Exclua pastas vazias regularmente:elas podem se acumular, principalmente
ao usar o gerenciamento do ciclo de vida de objetos ou excluir objetos sem
excluir explicitamente as pastas mãe. 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 ativado 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 Google Cloud ou a Google Cloud CLI.
É possível usar o script delete_empty_folders.py para 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 ele execute exclusões de pastas em um subconjunto da estrutura de diretório do bucket. Além disso, o
script exclui todas as pastas vazias (criadas implícita ou explicitamente),
incluindo pastas gerenciadas e as políticas do IAM associadas.
Para detalhes sobre como usar o script, consulte o README no GitHub (em inglês).
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-18 UTC."],[],[],null,["# Optimize performance in buckets with hierarchical namespace enabled\n\nThis page provides guidance on how you can optimize performance in buckets with\nhierarchical namespace enabled.\n\nListing objects\n---------------\n\nThe following are the performance considerations for listing objects:\n\n- In buckets with hierarchical namespace enabled, listing all objects for the entire bucket or with a prefix is resource-intensive as the operation must traverse each folder and subfolder, similar to the `ls -r` command in a file system. Consequently, if there are more folders in your bucket, the slower the object listing happens. A large number of empty folders can also negatively impact object listing performance. To avoid negatively impacting performance, we recommend that you maximize the number of objects in each folder and regularly delete empty folders.\n- Listing or retrieving objects and sub folders within a specific folder using a delimiter and a specific prefix is more efficient in buckets with hierarchical namespace enabled as the objects are organized within a folder structure. To optimize listing performance when using a delimiter and a specific prefix, set the `includeFoldersAsPrefixes` parameter. Otherwise, Cloud Storage performs additional checks to exclude empty folders, which can slow down the operation. For more information about using the `includeFoldersAsPrefixes` when listing objects, see [Listing objects](/storage/docs/json_api/v1/objects/list).\n\nFolder management\n-----------------\n\nFor efficient folder management, we recommend the following:\n\n- **Pre-create folder structure:** Instead of relying on automatic folder creation during object upload, rewrite, and compose operations, use the create folder operation to obtain your intended folder structure in advance. Pre-creating the folder structure improves the performance consistency and predictability.\n- **Maximize objects per folder ratio:** Aim for a high objects-to-folder ratio as it reduces the overhead associated with folder creation and management.\n- **Limit folder creation and deletion requests:** Creating or deleting folders is more resource-intensive than working with individual objects due to its hierarchical nature. To ensure a smooth performance, Cloud Storage limits these operations to 1000 requests per second for each bucket. Requests exceeding this limit are not explicitly restricted but resource availability determines whether they can be processed successfully.\n- **Regularly delete empty folders:** Empty folders can accumulate, especially when using Object Lifecycle Management or deleting objects without explicitly deleting their parent folders. The accumulated folders can impact the performance of object listing operation and other folder related operations. The following are some of the methods that you can use to delete empty folders:\n - When you use [Cloud Storage FUSE](/storage/docs/gcs-fuse) or [Cloud Storage connector](/dataproc/docs/concepts/connectors/cloud-storage) to interact with a bucket enabled with hierarchical namespace, deleting a directory deletes the corresponding folder in your bucket.\n - You can use a recursive delete to delete folders automatically when using the Google Cloud console or Google Cloud CLI.\n - You can use the [`delete_empty_folders.py`](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/main/storage/hierarchical-namespace/delete_empty_folders.py) script to periodically delete empty folders using parallel processing. The script provides an option to target a specific folder path prefix, which allows the script to perform folder deletions on a subset of the bucket's directory structure. Additionally, the script deletes all empty folders (created implicitly or explicitly) including managed folders and their associated IAM policies. For details about how to use the script, see the [README on GitHub](https://github.com/GoogleCloudPlatform/python-docs-samples/tree/main/storage/hierarchical-namespace/README.d).\n\nWhat's next\n-----------\n\n- [Create and manage folders](/storage/docs/create-folders).\n- [Rename a folder](/storage/docs/rename-hns-folders).\n- [Listing objects](/storage/docs/listing-objects)."]]