En esta página, se proporciona orientación para optimizar el rendimiento en buckets con el espacio de nombres jerárquico habilitado.
Enumera objetos
A continuación, se indican las consideraciones de rendimiento para enumerar objetos:
- En los buckets con el espacio de nombres jerárquico habilitado, enumerar todos los objetos para 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 -ren un sistema de archivos. Por lo tanto, si hay más carpetas en tu bucket, la lista de objetos se generará con mayor lentitud. Una gran cantidad de carpetas vacías también puede afectar de forma negativa el rendimiento de la lista de objetos. Para evitar un impacto negativo en el rendimiento, te recomendamos que maximices la cantidad de objetos en cada carpeta y que 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 los buckets con
el espacio de nombres jerárquico habilitado, ya que los objetos se organizan dentro de una estructura de
carpetas. Para optimizar el rendimiento de la lista 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 deincludeFoldersAsPrefixescuando se enumeran objetos, consulta Enumera objetos.
Administración de carpetas
Para administrar las carpetas de forma eficiente, te recomendamos lo siguiente:
- Crea previamente la estructura de carpetas: 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. Crear previamente la estructura de carpetas mejora la coherencia y la previsibilidad del rendimiento.
- Maximiza la proporción de objetos por carpeta: Intenta lograr una proporción alta de objetos por carpeta, ya que esto reduce la sobrecarga asociada con la creación y administración de carpetas.
- Borra las carpetas vacías con regularidad: Las carpetas vacías se pueden acumular, en especial
cuando se usa la Administración del ciclo de vida de los objetos o se borran objetos sin
borrar de forma explícita sus carpetas superiores. Las carpetas acumuladas pueden afectar
el rendimiento de la operación de creación de listas 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 un espacio de nombres jerárquico, borrar un directorio 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 la secuencia de comandos
delete_empty_folders.pypara borrar de forma periódica las carpetas vacías con el procesamiento paralelo. La secuencia de comandos proporciona una opción para orientar un prefijo de ruta de acceso de carpeta específico, lo que permite que la secuencia de comandos borre carpetas en un subconjunto de la estructura de directorios del bucket. 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. Para obtener detalles sobre cómo usar la secuencia de comandos, consulta el archivo README en GitHub.