En esta página, se proporciona orientación para optimizar el rendimiento en buckets con el espacio de nombres jerárquico habilitado.
Enumera objetos
Las siguientes son las consideraciones de rendimiento para la creación de listas de objetos:
- En los buckets con el espacio de nombres jerárquico habilitado, la enumeración de todos los objetos de todo el bucket o con un prefijo requiere muchos recursos, ya que la operación debe recorrer cada carpeta y subcarpeta, de manera similar al comando
ls -r
en un sistema de archivos. Por lo tanto, si hay más carpetas en tu bucket, la enumeración de objetos será más lenta. Una gran cantidad de carpetas vacías también puede afectar de forma negativa el rendimiento de las fichas de objetos. Para evitar un impacto negativo en el rendimiento, te recomendamos que maximices la cantidad de objetos en cada carpeta y borres las carpetas vacías con regularidad. - Enumerar o recuperar objetos y subcarpetas dentro de una carpeta específica con un delimitador y un prefijo específico es más eficiente en buckets con espacio de nombres jerárquico habilitado, ya que los objetos se organizan dentro de una estructura de carpetas. Para optimizar el rendimiento de las fichas cuando se usa un delimitador y un prefijo específico, configura el parámetro
includeFoldersAsPrefixes
. De lo contrario, Cloud Storage realiza verificaciones adicionales para excluir las carpetas vacías, lo que puede ralentizar la operación. Para obtener más información sobre el uso deincludeFoldersAsPrefixes
cuando se crean listas de objetos, consulta Cómo crear listas de objetos.
Administración de carpetas
Para administrar las carpetas de forma eficiente, te recomendamos lo siguiente:
- Crea la estructura de carpetas con anticipación: En lugar de depender de la creación automática de carpetas durante las operaciones de carga, reescritura y composición de objetos, usa la operación de creación de carpetas para obtener la estructura de carpetas que deseas con anticipación. La creación previa de la estructura de carpetas mejora la coherencia y la previsibilidad del rendimiento.
- Maximiza la proporción de objetos por carpeta: Intenta obtener una proporción alta de objetos por carpeta, ya que reduce la sobrecarga asociada con la creación y administración de carpetas.
- Limita las solicitudes de creación y eliminación de carpetas: Crear o borrar carpetas requiere más recursos que trabajar con objetos individuales debido a su naturaleza jerárquica. Para garantizar un rendimiento fluido, Cloud Storage limita estas operaciones a 1,000 solicitudes por segundo para cada bucket. Las solicitudes que superan este límite no se restringen de forma explícita, pero la disponibilidad de recursos determina si se pueden procesar correctamente.
Borra las carpetas vacías con regularidad: Las carpetas vacías pueden acumularse, especialmente cuando se usa la Administración del ciclo de vida de los objetos o se borran objetos sin borrar explícitamente sus carpetas superiores. Las carpetas acumuladas pueden afectar el rendimiento de la operación de la ficha de objetos y otras operaciones relacionadas con las carpetas. Los siguientes son algunos de los métodos que puedes usar para borrar carpetas vacías:
- Cuando usas Cloud Storage FUSE o el conector de Cloud Storage para interactuar con un bucket habilitado con espacio de nombres jerárquico, si borras un directorio, se borra la carpeta correspondiente en tu bucket.
- Puedes usar una eliminación recursiva para borrar carpetas automáticamente cuando usas la consola de Google Cloud o Google Cloud CLI.
Puedes usar una secuencia de comandos o un proceso automatizado para borrar periódicamente las carpetas vacías. La siguiente secuencia de comandos proporciona un enfoque básico para borrar carpetas vacías. La secuencia de comandos borra las carpetas de forma secuencial, lo que puede ser lento para los buckets grandes. Por lo tanto, te recomendamos que optimices la secuencia de comandos para los entornos de producción. Además, la secuencia de comandos borra todas las carpetas vacías (creadas de forma implícita o explícita), incluidas las carpetas administradas y sus políticas de IAM asociadas. Si necesitas conservar carpetas específicas y carpetas administradas, ajusta la secuencia de comandos según los recursos que deseas conservar.
# List all the folders under <bucket>/<prefix> and export results into # folders.txt gcloud storage folders list gs://<bucket>/<prefix> | grep storage_url | sed 's/storage_url: //' > folders.txt # Reverse the folder list and export results into folders-reverse.txt sed '1!G;h;$!d' folders.txt > folders-reverse.txt # Try deleting each folder in the reverse order (to guarantee child # folders are deleted before parent folders). This will fail for # non-empty folders, so only empty folders will be deleted xargs -I{} gcloud storage folders delete "{}" < folders-reverse.txt