En esta guía, se muestra cómo optimizar el rendimiento del controlador de CSI de FUSE de Cloud Storage en Google Kubernetes Engine (GKE).
Si bien Cloud Storage FUSE ofrece flexibilidad y escalabilidad, la configuración y el ajuste cuidadosos son fundamentales para lograr un rendimiento óptimo. El rendimiento de Cloud Storage FUSE puede diferir de un sistema de archivos POSIX en términos de latencia, rendimiento y coherencia. El objetivo del ajuste es minimizar la sobrecarga de las operaciones de metadatos y maximizar la eficiencia del acceso a los datos. Si ejecutas aplicaciones de IA/AA que consumen datos en buckets de Cloud Storage, ajustar el controlador de CSI puede generar tiempos de inferencia y entrenamiento más rápidos para tus aplicaciones de IA/AA.
Esta guía está destinada a desarrolladores e ingenieros de aprendizaje automático (AA) que desean mejorar el rendimiento de sus aplicaciones que acceden a datos almacenados en buckets de Cloud Storage.
Antes de leer esta página, asegúrate de estar familiarizado con los aspectos básicos de Cloud Storage, Kubernetes y el controlador CSI de Cloud Storage FUSE. Asegúrate de consultar también los requisitos de versión de GKE para las funciones específicas que deseas usar.
Configura las opciones de activación
El controlador CSI del FUSE de Cloud Storage admite opciones de activación para configurar cómo se activan los buckets de Cloud Storage en tu sistema de archivos local. Para obtener una lista completa de las opciones de activación compatibles, consulta la documentación de archivos de la CLI de Cloud Storage FUSE.
Puedes especificar las opciones de activación de las siguientes maneras, según el tipo de volumen que uses:
Volumen efímero de CSI
Si usas volúmenes efímeros de CSI, especifica las opciones de activación en el campo spec.volumes[n].csi.volumeAttributes.mountOptions
de tu manifiesto de Pod.
Debes especificar las opciones de activación como una cadena, con marcas separadas por comas y sin espacios. Por ejemplo:
mountOptions: "implicit-dirs,file-cache:enable-parallel-downloads:true,file-cache:download-chunk-size-mb:3"
Volumen persistente
Si usas volúmenes persistentes, especifica las opciones de activación en el campo spec.mountOptions
de tu manifiesto de PersistentVolume.
Debes especificar las opciones de activación como una lista. Por ejemplo:
mountOptions:
- implicit-dirs
- file-cache:enable-parallel-downloads:true
- file-cache:download-chunk-size-mb:3
Consideraciones sobre la activación
Ten en cuenta lo siguiente cuando configures activaciones con el controlador de CSI:
Consideraciones generales
- Las siguientes marcas no están permitidas:
app-name
,temp-dir
,foreground
,log-file
,log-format
,key-file
,token-url
yreuse-token-from-url
. - El FUSE de Cloud Storage no hace que los directorios implícitos sean visibles de forma predeterminada.
- Si solo deseas activar un directorio en el bucket en lugar de todo el bucket, pasa la ruta de acceso relativa al directorio con la marca
only-dir=relative/path/to/the/bucket/root
.
Seguridad y permisos
- Si usas un Contexto de seguridad para tu Pod o contenedor, o si tu imagen de contenedor usa un usuario o grupo que no sean raíz, debes configurar las marcas de activación
uid
ygid
. También debes usar las marcas de activaciónfile-mode
ydir-mode
para configurar los permisos del sistema de archivos. Ten en cuenta que no puedes ejecutar los comandoschmod
,chown
ochgrp
en un sistema de archivos de Cloud Storage FUSE, por lo que debes usar las marcas de activaciónuid
,gid
,file-mode
ydir-mode
para obtener acceso a un usuario o grupo no raíz.
Opciones de activación del kernel de Linux
- Si necesitas configurar las opciones de activación del kernel de Linux, puedes pasar las opciones a través de la marca
o
. Por ejemplo, si no deseas permitir la ejecución directa de ningún objeto binario en el sistema de archivos activado, establece la marcao=noexec
. Cada opción requiere una marca independiente, por ejemplo,o=noexec
,o=noatime
. Solo se permiten las siguientes opciones:exec
,noexec
,atime
,noatime
,sync
,async
ydirsync
.
Configura el almacenamiento en caché
En esta sección, se proporciona una descripción general de las opciones de almacenamiento en caché disponibles con el controlador CSI de Cloud Storage FUSE para mejorar el rendimiento.
Almacenamiento en caché de archivos
Puedes usar el controlador CSI de Cloud Storage FUSE con almacenamiento en caché de archivos para mejorar el rendimiento de lectura de las aplicaciones que controlan archivos pequeños de buckets de Cloud Storage. La función de caché de archivos de Cloud Storage FUSE es una caché de lectura basada en el cliente que permite que las lecturas de archivos repetidas se entreguen más rápido desde el almacenamiento en caché que elijas.
Puedes elegir entre una variedad de opciones de almacenamiento para la caché de lectura, incluidos las SSD locales, el almacenamiento basado en Persistent Disk y el disco RAM (memoria), según tus necesidades de precio y rendimiento.
Habilita y usa el almacenamiento en caché de archivos
De forma predeterminada, la función de almacenamiento en caché de archivos está inhabilitada en GKE. Debes habilitar el almacenamiento en caché de archivos con el controlador de CSI de Cloud Storage FUSE.
Para habilitar y controlar el almacenamiento en caché de archivos, establece el atributo de volumen fileCacheCapacity
o usa la opción de activación file-cache:max-size-mb
.
GKE usa un volumen emptyDir
de forma predeterminada para el almacenamiento en caché de archivos de Cloud Storage FUSE respaldado por el almacenamiento efímero configurado en el nodo. Puede ser el disco de arranque conectado al nodo o un SSD local en el nodo. Si habilitas SSD local en el nodo, GKE usa la SSD local para respaldar el volumen emptyDir
.
Puedes configurar un volumen de caché de lectura personalizado para el contenedor de archivo adicional para reemplazar el volumen emptyDir
predeterminado para el almacenamiento en caché de archivos en operaciones de lectura.
Para obtener más información sobre las prácticas recomendadas para el almacenamiento en caché de archivos, consulta Rendimiento de Cloud Storage FUSE.
Selecciona el almacenamiento para crear una copia de seguridad de la caché de archivos
Para seleccionar el almacenamiento para crear una copia de seguridad de la caché de archivos, ten en cuenta lo siguiente:
Para las familias de VMs de GPU y CPU que admiten SSD locales (por ejemplo, VMs A3), recomendamos usar SSD locales.
- Para las VMs A3 y versiones posteriores, GKE configura automáticamente las SSD locales para que las consuman tus pods.
- Si tu familia de VM no admite SSD locales, GKE usa el disco de arranque para el almacenamiento en caché. El tipo de disco predeterminado para el disco de arranque en GKE es
pd-balanced
. Si la familia de VM admite SSD local, pero no tiene habilitado el almacenamiento efímero en SSD local de forma predeterminada, puedes habilitar SSD local en tu grupo de nodos. Esto se aplica a las familias de máquinas de primera y segunda generación, como las máquinas N1 y N2. Para obtener más información, consulta Crea un clúster con SSD local.
Para verificar si tu nodo tiene habilitado el almacenamiento efímero en SSD local, ejecuta el siguiente comando:
kubectl describe node <code><var>NODE_NAME</var></code> | grep "cloud.google.com/gke-ephemeral-storage-local-ssd"
Para las familias de VM de TPU, en especial las versiones 6 y posteriores, recomendamos usar RAM como una caché de archivos para obtener el mejor rendimiento, ya que estas instancias de VM tienen una RAM más grande.
- Cuando uses la RAM, presta atención a los errores de memoria insuficiente (OOM), ya que causan interrupciones en los pods. Cloud Storage FUSE consume memoria, por lo que configurar una caché de archivos para consumir el contenedor lateral puede generar errores de OOM. Para evitar este tipo de situaciones, ajusta el campo
file-cache:max-size-mb
de configuración de la caché de archivos a un valor más bajo. - Para otras familias de TPU, te recomendamos que uses
pd-balanced
opd-ssd
. El tipo de disco predeterminado para el disco de arranque en GKE espd-balanced
.
- Cuando uses la RAM, presta atención a los errores de memoria insuficiente (OOM), ya que causan interrupciones en los pods. Cloud Storage FUSE consume memoria, por lo que configurar una caché de archivos para consumir el contenedor lateral puede generar errores de OOM. Para evitar este tipo de situaciones, ajusta el campo
Evita usar el disco de arranque para el almacenamiento en caché, ya que puede reducir el rendimiento y generar cancelaciones inesperadas. En su lugar, considera usar un PersistentVolume con copia de seguridad en un disco persistente.
Usa el almacenamiento en caché de archivos basado en el disco RAM
Puedes usar el disco de RAM para la caché de archivos o la descarga en paralelo para reducir la sobrecarga de usar un disco de arranque o un Persistent Disk, si usas una VM de TPU con una RAM lo suficientemente grande.
Para usar un disco RAM con el controlador de CSI del FUSE de Cloud Storage, agrega lo siguiente a tu manifiesto:
volumes:
- name: gke-gcsfuse-cache
emptyDir:
medium: Memory
Caché de estadísticas
El controlador CSI de Cloud Storage FUSE mejora el rendimiento almacenando en caché los metadatos de los archivos, como el tamaño y la hora de modificación. El controlador de CSI habilita esta caché de estadísticas de forma predeterminada y reduce la latencia almacenando información de forma local en lugar de solicitarla de forma reiterada a Cloud Storage. Puedes configurar su tamaño máximo (el valor predeterminado es de 32 MB) y durante cuánto tiempo permanecen los datos en la caché (el valor predeterminado es de 60 segundos). Si ajustas la caché de metadatos, puedes reducir las llamadas a la API a Cloud Storage para mejorar el rendimiento y la eficiencia de la aplicación minimizando el tráfico de red y la latencia.
Para obtener más información sobre las prácticas recomendadas para el almacenamiento en caché de estadísticas, consulta la descripción general del almacenamiento en caché de Cloud Storage FUSE.
Usa la precarga de metadatos para prepopular la caché de metadatos
La función de precarga de metadatos permite que el controlador CSI de Cloud Storage FUSE cargue de forma proactiva los metadatos relevantes sobre los objetos de tu bucket de Cloud Storage en las cachés de Cloud Storage FUSE. Este enfoque reduce las llamadas a Cloud Storage y es especialmente beneficioso para las aplicaciones que acceden a conjuntos de datos grandes con muchos archivos, como las cargas de trabajo de capacitación de IA/AA.
Esta función requiere la versión 1.31.3-gke.1162000 o una posterior de GKE.
Para ver las mejoras de rendimiento de la precarga de metadatos, debes establecer el valor de tiempo de actividad (TTL) de los elementos de la caché de metadatos como ilimitado. Por lo general, configurar un TTL evita que el contenido almacenado en caché se vuelva inactivo. Cuando configuras el TTL como ilimitado, debes tener cuidado de no cambiar el contenido del bucket fuera de banda (es decir, permitir que un actor o una carga de trabajo diferente lo modifique). Los cambios fuera de banda no son visibles de forma local y podrían causar problemas de coherencia.
Para habilitar la precarga de metadatos, realiza los siguientes cambios de configuración. Te recomendamos que habilites esta función en los volúmenes que se lean con frecuencia.
- Establece el atributo de volumen
gcsfuseMetadataPrefetchOnMount: true
. - Actualiza las siguientes opciones de activación:
metadata-cache:stat-cache-max-size-mb:-1
para anular el límite de capacidad de la caché de estadísticas.metadata-cache:type-cache-max-size-mb:-1
para restablecer el límite de capacidad de la caché de tipos.file-system:kernel-list-cache-ttl-secs:-1
para evitar que venza la lista de elementos de caché del kernel.metadata-cache:ttl-secs:-1
para evitar que venzan los elementos de metadatos almacenados en caché.
Para ver un ejemplo, consulta la muestra de código en Cómo mejorar el rendimiento de lectura de archivos grandes con descargas en paralelo.
Caché de lista
Para acelerar las fichas de directorio de las aplicaciones, puedes habilitar el almacenamiento en caché de listas. Esta función almacena las fichas de directorio en la memoria para que las solicitudes repetidas se puedan entregar más rápido. La caché de listas está inhabilitada de forma predeterminada. Puedes habilitarla si configuras el parámetro kernel-list-cache-ttl-secs
en tus opciones de activación. Esto define por cuánto tiempo se almacenan en caché las fichas.
Mejora el rendimiento de lectura de archivos grandes con la descarga en paralelo
Puedes usar la descarga en paralelo de Cloud Storage FUSE para acelerar la lectura de archivos grandes desde Cloud Storage para descargas de varios subprocesos. La descarga en paralelo de Cloud Storage FUSE puede ser particularmente beneficiosa para los casos de uso de entrega de modelos con lecturas de más de 1 GB de tamaño.
A continuación, se muestran algunos ejemplos comunes:
- Entrega de modelos, en la que necesitas un búfer de carga previa grande para acelerar la descarga del modelo durante el inicio de la instancia
- Restauraciones de puntos de control, en las que necesitas una caché de datos de solo lectura para mejorar el acceso único de varios archivos grandes
Usa la descarga en paralelo para aplicaciones que realizan lecturas de archivos grandes de subproceso único. Es posible que las aplicaciones con un alto paralelismo de lectura (que usan más de ocho subprocesos) tengan un rendimiento más bajo con esta función.
Para usar la descarga en paralelo con el controlador de CSI de Cloud Storage FUSE, sigue estos pasos:
Crea un clúster con el almacenamiento en caché de archivos habilitado, como se describe en Habilita y usa el almacenamiento en caché de archivos.
En tu manifiesto, configura estos parámetros de configuración adicionales con las opciones de activación para habilitar la descarga en paralelo:
- Establece
file-cache:enable-parallel-downloads:true
. - Ajusta
file-cache:parallel-downloads-per-file
,file-cache:parallel-downloads-per-file
,file-cache:max-parallel-downloads
yfile-cache:download-chunk-size-mb
según sea necesario.
- Establece
Si es necesario, considera ajustar estos atributos de volumen (opcional):
file-cache:cache-file-for-range-read
para lecturas aleatorias o parciales.metadata-cache:stat-cache-max-size-mb
ymetadata-cache:type-cache-max-size-mb
para cargas de trabajo de entrenamiento.
Reduce el consumo de cuota de las verificaciones de control de acceso
De forma predeterminada, el controlador CSI realiza verificaciones de control de acceso para garantizar que la cuenta de servicio del pod tenga acceso a tus buckets de Cloud Storage. Esto genera una sobrecarga adicional en forma de llamadas a la API de Kubernetes Service, al servicio de tokens de seguridad y a IAM. A partir de la versión 1.29.9-gke.1251000 de GKE, puedes
usar el atributo de volumen skipCSIBucketAccessCheck
para omitir esas verificaciones redundantes y
reducir el consumo de cuota.
Ejemplo de publicación de inferencias
En el siguiente ejemplo, se muestra cómo habilitar la descarga en paralelo para la entrega de inferencias:
Crea un manifiesto de PersistentVolume y PersistentVolumeClaim con la siguiente especificación:
apiVersion: v1 kind: PersistentVolume metadata: name: serving-bucket-pv spec: accessModes: - ReadWriteMany capacity: storage: 64Gi persistentVolumeReclaimPolicy: Retain storageClassName: example-storage-class claimRef: namespace: NAMESPACE name: serving-bucket-pvc mountOptions: - implicit-dirs #avoid if list cache enabled and doing metadata prefetch - metadata-cache:ttl-secs:-1 - metadata-cache:stat-cache-max-size-mb:-1 - metadata-cache:type-cache-max-size-mb:-1 - file-cache:max-size-mb:-1 - file-cache:cache-file-for-range-read:true - file-system:kernel-list-cache-ttl-secs:-1 - file-cache:enable-parallel-downloads:true csi: driver: gcsfuse.csi.storage.gke.io volumeHandle: BUCKET_NAME volumeAttributes: skipCSIBucketAccessCheck: "true" gcsfuseMetadataPrefetchOnMount: "true" --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: serving-bucket-pvc namespace: NAMESPACE spec: accessModes: - ReadWriteMany resources: requests: storage: 64Gi volumeName: serving-bucket-pv storageClassName: example-storage-class
Reemplaza los siguientes valores:
NAMESPACE
: Es el espacio de nombres de Kubernetes en el que deseas implementar tu Pod.BUCKET_NAME
: Es el nombre del bucket de Cloud Storage que especificaste cuando configuraste el acceso a los buckets de Cloud Storage. Puedes especificar un guion bajo (_
) para activar todos los buckets a los que puede acceder la ServiceAccount de Kubernetes. Para obtener más información, consulta Activación dinámica en la documentación de GitHub del FUSE de Cloud Storage.
Aplica el manifiesto al clúster:
kubectl apply -f PV_FILE_PATH
Reemplaza
PV_FILE_PATH
por la ruta de acceso a tu archivo YAML.Crea un manifiesto de Pod con la siguiente especificación para consumir el elemento PersistentVolumeClaim, según si usas la caché de archivos con el respaldo de SSD locales o la caché de archivos con el respaldo de discos de RAM:
SSD local
apiVersion: v1 kind: Pod metadata: name: gcs-fuse-csi-example-pod namespace: NAMESPACE annotations: gke-gcsfuse/volumes: "true" gke-gcsfuse/cpu-limit: "0" gke-gcsfuse/memory-limit: "0" gke-gcsfuse/ephemeral-storage-limit: "0" spec: containers: # Your workload container spec ... volumeMounts: - name: serving-bucket-vol mountPath: /serving-data readOnly: true serviceAccountName: KSA_NAME volumes: - name: serving-bucket-vol persistentVolumeClaim: claimName: serving-bucket-pvc
Disco RAM
apiVersion: v1 kind: Pod metadata: name: gcs-fuse-csi-example-pod namespace: NAMESPACE annotations: gke-gcsfuse/volumes: "true" gke-gcsfuse/cpu-limit: "0" gke-gcsfuse/memory-limit: "0" gke-gcsfuse/ephemeral-storage-limit: "0" spec: containers: # Your workload container spec ... volumeMounts: - name: serving-bucket-vol mountPath: /serving-data readOnly: true serviceAccountName: KSA_NAME volumes: - name: gke-gcsfuse-cache # gcsfuse file cache backed by RAM Disk emptyDir: medium: Memory - name: serving-bucket-vol persistentVolumeClaim: claimName: serving-bucket-pvc
Aplica el manifiesto al clúster:
kubectl apply -f POD_FILE_PATH
Reemplaza
POD_FILE_PATH
por la ruta de acceso a tu archivo YAML.
Configura los atributos de volumen
Los atributos de volumen te permiten configurar el comportamiento específico del controlador de CSI de Cloud Storage FUSE.
El controlador de CSI de Cloud Storage FUSE no te permite especificar directamente el archivo de configuración de Cloud Storage FUSE. Puedes configurar algunos de los campos del archivo de configuración con los atributos de volumen de CSI de Cloud Storage FUSE. El controlador de CSI se encarga de traducir los valores de los atributos de volumen a los campos del archivo de configuración.
Para obtener la lista completa de los atributos de volumen compatibles, consulta la referencia de atributos de volumen.
Puedes especificar los atributos de volumen de las siguientes maneras:
- En el campo
spec.csi.volumeAttributes
de un manifiesto de PersistentVolume, si usas volúmenes persistentes. - En el campo
spec.volumes[n].csi.volumeAttributes
, si usas volúmenes efímeros de CSI.
En el manifiesto, los atributos de volumen se pueden especificar como pares clave-valor. Por ejemplo:
volumeAttributes:
mountOptions: "implicit-dirs"
fileCacheCapacity: "-1"
gcsfuseLoggingSeverity: warning
Métricas de Cloud Storage FUSE
Las siguientes métricas de Cloud Storage FUSE ahora están disponibles a través de la API de GKE Monitoring. Puedes encontrar detalles sobre las métricas de Cloud Storage FUSE, como las etiquetas, el tipo y la unidad, en Métricas del sistema de GKE. Estas métricas están disponibles para cada Pod que usa Cloud Storage FUSE, y puedes usarlas para configurar estadísticas por volumen y bucket.
Las métricas están inhabilitadas de forma predeterminada. Para habilitarlas, establece el atributo de volumen disableMetrics
en "false".
Métricas del sistema de archivos
Las métricas del sistema de archivos hacen un seguimiento del rendimiento y el estado del sistema de archivos, incluida la cantidad de operaciones, errores y velocidad de operación. Estas métricas pueden ayudar a identificar cuellos de botella y optimizar el rendimiento.
gcsfusecsi/fs_ops_count
gcsfusecsi/fs_ops_error_count
gcsfusecsi/fs_ops_latency
Métricas de Cloud Storage
Puedes supervisar las métricas de Cloud Storage, como el volumen de datos, la velocidad y la actividad de solicitudes, para comprender cómo interactúan tus aplicaciones con los buckets de Cloud Storage. Estos datos pueden ayudarte a identificar áreas de optimización, como mejorar los patrones de lectura o reducir la cantidad de solicitudes.
gcsfusecsi/gcs_download_bytes_count
gcsfusecsi/gcs_read_count
gcsfusecsi/gcs_read_bytes_count
gcsfusecsi/gcs_reader_count
gcsfusecsi/gcs_request_count
gcsfusecsi/gcs_request_latencies
Métricas de caché de archivos
Puedes supervisar las métricas de la caché de archivos, como el volumen de lectura de datos, la velocidad y la tasa de acierto de caché, para optimizar Cloud Storage FUSE y el rendimiento de la aplicación. Analiza estas métricas para mejorar tu estrategia de almacenamiento en caché y maximizar los aciertos de caché.
gcsfusecsi/file_cache_read_bytes_count
gcsfusecsi/file_cache_read_latencies
gcsfusecsi/file_cache_read_count
Prácticas recomendadas para el ajuste del rendimiento
En esta sección, se enumeran algunas técnicas recomendadas de optimización y ajuste del rendimiento para el controlador de CSI de Cloud Storage FUSE.
Aprovecha los buckets de espacio de nombres jerárquico (HNS): Elige los buckets de HNS para lograr un aumento sustancial de 8 veces en las consultas por segundo (QPS) iniciales. Esta elección también facilita el cambio de nombre de directorios rápido y atómico, un requisito fundamental para el establecimiento de puntos de control eficientes con Cloud Storage FUSE. Los buckets de HNS garantizan una mejor experiencia similar a un archivo, ya que admiten 40,000 solicitudes de lectura de objetos y 8,000 solicitudes de escritura de objetos por segundo, una mejora significativa en comparación con las 8,000 solicitudes de lectura de objetos y las 1,000 solicitudes de escritura de objetos por segundo que ofrecen los buckets planos.
Activa directorios específicos cuando sea posible: Si tu carga de trabajo implica acceder a un directorio específico dentro de un bucket, usa la marca
--only-dir
durante la activación. Este enfoque enfocado agiliza las llamadas de lista, ya que limita el alcance de las llamadasLookUpInode
, que implican una llamadalist+stat
para cada archivo o directorio en la ruta especificada. Si limitas el acceso al subdirectorio requerido, minimizas estas llamadas, lo que genera mejoras en el rendimiento.Optimiza el almacenamiento en caché de metadatos: Configura tus cachés de metadatos para maximizar su capacidad y establecer un tiempo de actividad (TTL) infinito. Esta práctica almacena en caché de manera eficaz todos los metadatos a los que se accede durante la ejecución de la tarea, lo que minimiza las solicitudes de acceso a metadatos a Cloud Storage. Esta configuración resulta particularmente útil para los volúmenes de solo lectura, ya que elimina las búsquedas repetidas de metadatos de Cloud Storage. Sin embargo, verifica que el consumo de memoria asociado con estas grandes cachés de metadatos se alinee con las capacidades de tu sistema.
Maximiza los recursos de Sidecar de GKE: Cloud Storage FUSE opera dentro de un contenedor de Sidecar en un entorno de GKE. Para evitar cuellos de botella de recursos, quita las limitaciones en el consumo de CPU y memoria del contenedor del contenedor secundario. Esto permite que Cloud Storage FUSE escale el uso de recursos según las demandas de la carga de trabajo, lo que evita la limitación y garantiza una capacidad de procesamiento óptima.
Completa la caché de metadatos de forma proactiva: Habilita la recuperación previa de metadatos para el controlador de CSI. Esto propaga de manera eficiente los metadatos y las cachés de listas, lo que minimiza las llamadas a metadatos a Cloud Storage y acelera la ejecución inicial. Muchos marcos de trabajo de AA hacen esto automáticamente, pero es fundamental realizar este paso para el código de entrenamiento personalizado. Para obtener más información, consulta Cómo usar la precarga de metadatos para completar previamente la caché de metadatos.
Usa la caché de archivos y las descargas en paralelo: Habilita la función de caché de archivos, en especial para las cargas de trabajo de entrenamiento de varias épocas, en las que se leen los datos de forma repetida. La caché de archivos almacena datos a los que se accede con frecuencia en el almacenamiento local (SSD en el caso de las máquinas A3), lo que mejora el rendimiento de lectura. Complementa esto con la función de descargas en paralelo, en particular para entregar cargas de trabajo, para acelerar la descarga de archivos grandes dividiéndolos en fragmentos más pequeños y descargándolos de forma simultánea.
Optimiza los puntos de control: Para crear puntos de control con Cloud Storage FUSE, te recomendamos que uses un bucket de HNS. Si usas un bucket que no es de HNS, establece el parámetro
rename-dir-limit
en un valor alto para admitir los cambios de nombre de directorio que suelen usar los frameworks de IA durante el establecimiento de puntos de control. Sin embargo, ten en cuenta que los cambios de nombre de directorio en los buckets que no son de HNS podrían no ser atómicos y tardar más tiempo en completarse.Habilita el almacenamiento en caché de listas: Activa el almacenamiento en caché de listas con la marca
--kernel-list-cache-ttl-secs
para mejorar aún más el rendimiento. Esta función almacena en caché las listas de directorios y archivos, lo que mejora la velocidad de las operaciones dels
. El almacenamiento en caché de la lista es especialmente beneficioso para las cargas de trabajo que involucran listas de directorios completas repetidas, que son comunes en situaciones de entrenamiento de IA/AA. Se recomienda usar el almacenamiento en caché de listas con activaciones de solo lectura para mantener la coherencia de los datos.
¿Qué sigue?
- Explora muestras adicionales para usar el controlador de CSI en GitHub.
- Obtén más información sobre Cloud Storage Fuse.