Usa el almacenamiento en caché de archivos de Cloud Storage FUSE

El almacenamiento en caché de archivos de Cloud Storage FUSE es una caché de lectura del cliente que mejora el rendimiento de las operaciones de lectura, ya que entrega lecturas de archivos repetidas desde un almacenamiento en caché más rápido que elijas. Cuando se habilita el almacenamiento en caché de archivos, Cloud Storage FUSE almacena copias de los archivos a los que se accede con frecuencia de forma local, lo que permite que las lecturas posteriores se entreguen directamente desde la caché, lo que reduce la latencia y mejora la capacidad de procesamiento.

Beneficios del almacenamiento en caché de archivos

El almacenamiento en caché de archivos proporciona los siguientes beneficios:

  • Mejora el rendimiento de las E/S pequeñas y aleatorias: El almacenamiento en caché de archivos mejora la latencia y la capacidad de procesamiento a través de la entrega de lecturas directamente desde los medios de caché. Las operaciones de E/S pequeñas y aleatorias pueden ser mucho más rápidas cuando se entregan desde la caché.

  • Aprovecha las descargas en paralelo: Las descargas en paralelo se habilitan automáticamente en las versiones 2.12 y posteriores de Cloud Storage FUSE cuando se habilita la caché de archivos. Las descargas paralelas utilizan varios trabajadores para descargar un archivo en paralelo con el directorio de caché de archivos como un búfer de carga previa, lo que puede generar un tiempo de carga del modelo hasta nueve veces más rápido. Te recomendamos que uses descargas en paralelo para situaciones de lectura de subproceso único que carguen archivos grandes, como la entrega de modelos y las restauraciones de puntos de control.

  • Usar la capacidad existente: el almacenamiento en caché de archivos puede usar la capacidad de la máquina aprovisionada existente para el directorio de caché sin incurrir en cargos por almacenamiento adicional. Esto incluye las SSD locales que vienen con los tipos de máquina de GPU de Cloud, como a2-ultragpu y a3-highgpu, Persistent Disk, que es el disco de arranque que usa cada máquina virtual (VM) o en la memoria./tmpfs

  • Cargos reducidos: los aciertos de caché se entregan de forma local y no generan cargos de red ni de operaciones de Cloud Storage.

  • Mejora en el costo total de propiedad para la capacitación de IA y AA: El almacenamiento en caché de archivos aumenta el uso de las GPUs de Cloud y las Cloud TPU, ya que carga los datos más rápido, lo que reduce el tiempo de capacitación y proporciona una mayor relación entre precio y rendimiento para las cargas de trabajo de capacitación de inteligencia artificial y aprendizaje automático (IA/AA).

Descargas paralelas

Las descargas paralelas pueden mejorar el rendimiento de lectura, ya que usan varios trabajadores para descargar varias partes de un archivo en paralelo con el directorio de caché de archivos como un búfer de carga previa. Recomendamos usar descargas en paralelo para situaciones de lectura que carguen archivos grandes, como la entrega de modelos, las restauraciones de puntos de control y el entrenamiento en objetos grandes.

Estos son algunos casos de uso para habilitar el almacenamiento en caché de archivos con descargas paralelas:

Tipo de caso de uso Descripción
Capacitación Habilita el almacenamiento en caché de archivos si los datos a los que deseas acceder se leen varias veces, ya sea el mismo archivo varias veces o diferentes compensaciones del mismo archivo. Si el conjunto de datos es más grande que la caché de archivos, esta debe permanecer inhabilitada. En su lugar, usa uno de los siguientes métodos:
Entrega de pesos del modelo y lecturas de puntos de control Habilita el almacenamiento en caché de archivos con descargas paralelas para poder utilizar las descargas paralelas, que cargan archivos grandes mucho más rápido que si no se usan el almacenamiento en caché de archivos ni las descargas paralelas.

Consideraciones

En las siguientes secciones, se proporcionan consideraciones importantes para usar el almacenamiento en caché de archivos.

Tamaño del archivo y capacidad disponible

El archivo que se lee debe ajustarse a la capacidad disponible en el directorio de caché de archivos, que se puede controlar con la opción de CLI --file-cache-max-size-mb o el campo file-cache:max-size-mb.

Administración de lecturas aleatorias y parciales

Si la primera operación de lectura de archivos empieza desde el principio del archivo o compensa 0, la caché del archivo de Cloud Storage FUSE transfiere y carga todo el archivo en la caché, incluso si solo estás leyendo de un subconjunto pequeño. Esto permite que las lecturas aleatorias o parciales posteriores del mismo objeto se entreguen directamente desde la caché.

Si la primera operación de lectura de un archivo empieza desde cualquier lugar que no sea el desplazamiento 0, Cloud Storage FUSE, de forma predeterminada, no activa una recuperación de archivo completa asíncrona. Para cambiar este comportamiento para que Cloud Storage FUSE transfiera un archivo a la caché en una lectura aleatoria inicial, usa uno de los siguientes métodos para configurar el comportamiento como true:

Te recomendamos que habilites esta propiedad si se realizan muchas operaciones de lectura parciales o aleatorias diferentes en el mismo objeto.

Expulsión de la caché

La expulsión de metadatos y datos almacenados en caché se basa en el algoritmo menos usado recientemente (LRU) que comienza una vez que se alcanza el límite de espacio configurado por límite de --file-cache-max-size-mb. Si la entrada vence según su TTL, primero se realiza una llamada de metadatos GET a Cloud Storage y está sujeta a latencias de red. Debido a que los datos y los metadatos se administran por separado, es posible que experimentes una entidad expulsada o invalidada y no otra.

Persistencia de la caché

Las cachés de Cloud Storage FUSE no se conservan en las desactivaciones y los reinicios. En el caso del almacenamiento en caché de archivos, si bien las entradas de metadatos necesarias para entregar archivos desde la caché se desalojan en los desmontajes y reinicios, es posible que los datos de la caché de archivos aún estén presentes en el directorio de archivos. Te recomendamos que borres los datos del directorio de la caché de archivos después de las activaciones o los reinicios.

Seguridad de los datos

Cuando habilitas el almacenamiento en caché, Cloud Storage FUSE usa el directorio de caché que especificaste con uno de los siguientes métodos como directorio subyacente para que la caché conserve los archivos de tu bucket de Cloud Storage en un formato encriptado:

Cualquier usuario o proceso que tenga acceso a este directorio de caché puede acceder a estos archivos. Te recomendamos restringir el acceso a este directorio.

Acceso directo o múltiple a la caché de archivos

El uso de un proceso que no sea Cloud Storage FUSE para acceder a un archivo en el directorio de la caché o modificarlo puede provocar daños en los datos. Las cachés de Cloud Storage FUSE son específicas de cada proceso en ejecución de Cloud Storage FUSE sin conocimiento en diferentes procesos de Cloud Storage FUSE que se ejecutan en las mismas máquinas o en máquinas diferentes. Por lo tanto, no recomendamos usar el mismo directorio de caché para diferentes procesos de Cloud Storage FUSE.

Si varios procesos de Cloud Storage FUSE necesitan ejecutarse en la misma máquina, cada proceso de Cloud Storage FUSE debe obtener su propio directorio de caché específico o usar uno de los siguientes métodos para garantizar que tus datos no se dañen:

  • Activa todos los buckets con una caché compartida: usa la activación dinámica para activar todos los buckets a los que tienes acceso en un solo proceso con una caché compartida. Para obtener más información, consulta Activación dinámica de Cloud Storage FUSE.

  • Habilita el almacenamiento en caché en un bucket específico: Habilita el almacenamiento en caché solo en un bucket específico mediante la activación estática. Para obtener más información, consulta Activación estática de Cloud Storage FUSE.

  • Almacena en caché solo una carpeta o directorio específico: activa y almacena en caché solo una carpeta de nivel de bucket específica en lugar de activar un bucket completo. Para obtener más información, consulta Activa un directorio dentro de un bucket.

Antes de comenzar

La caché de archivos requiere una ruta de acceso de directorio que se usará para almacenar los archivos en caché. Puedes crear un directorio nuevo en un sistema de archivos existente o crear un sistema de archivos nuevo en el almacenamiento aprovisionado. Si aprovisionas un almacenamiento nuevo para usar, sigue estas instrucciones para crear un sistema de archivos nuevo:

  1. Para Hyperdisk de Google Cloud, consulta Crea un nuevo volumen de Hyperdisk de Google Cloud.

  2. Para Persistent Disk, consulta Crea un nuevo volumen de Persistent Disk.

  3. Para SSD locales, consulta Agrega una SSD local a tu VM.

  4. Para los discos RAM en la memoria, consulta Crea discos RAM en la memoria.

Habilita y configura el comportamiento del almacenamiento en caché de archivos

Habilita y configura el almacenamiento en caché de archivos con una de las siguientes opciones:

  1. Especifica el directorio de caché que deseas usar con uno de los siguientes métodos. Esto te permite habilitar la caché de archivos para implementaciones que no son de Google Kubernetes Engine:

    Si usas una implementación de Google Kubernetes Engine con el controlador CSI de Cloud Storage FUSE para Google Kubernetes Engine, especifica una de las siguientes opciones:

  2. Opcional: Habilita las descargas paralelas configurando una de las siguientes opciones en true si las descargas paralelas no se habilitaron automáticamente:

  3. Para limitar la capacidad total que la caché de Cloud Storage FUSE puede usar dentro de su directorio activado, ajusta una de las siguientes opciones, que se establece automáticamente en un valor de -1 cuando especificas un directorio de caché:

    También puedes especificar un valor en MiB o GiB para limitar el tamaño de la caché.

  4. Opcional: Omite el vencimiento del TTL de las entradas almacenadas en caché y entrega los metadatos del archivo desde la caché si está disponible con uno de los siguientes métodos y configura un valor de -1:

    El valor predeterminado es 60 segundos, y un valor de -1 lo establece como ilimitado. También puedes especificar un valor alto según tus requisitos. Te recomendamos que establezcas el valor ttl-secs en el mismo valor que tu carga de trabajo. Si deseas obtener más información para configurar un TTL para entradas almacenadas en caché, consulta Tiempo de actividad.

  5. Opcional: Habilita la capacidad de la caché de archivos para cargar de forma asíncrona todo el archivo en la caché si la primera operación de lectura del archivo comienza desde cualquier lugar que no sea offset 0, de modo que las lecturas posteriores de diferentes compensaciones del mismo archivo también se puedan entregar desde la caché. Usa uno de los siguientes métodos y establece la opción en true:

  6. Opcional: Configura el almacenamiento en caché de estadísticas y de tipo. Para obtener más información sobre el almacenamiento en caché de estadísticas y tipos, consulta Descripción general del almacenamiento en caché de tipo o Descripción general del almacenamiento en caché de estadísticas.

  7. Ejecuta de forma manual el comando ls -R en el bucket activado antes de ejecutar la carga de trabajo para propagar los metadatos con anterioridad para garantizar que la caché del tipo se propague antes de la primera lectura en un método por lotes más rápido. Para obtener más información para mejorar el rendimiento de las lecturas por primera vez, consulta Mejora las lecturas por primera vez.

Una vez que habilites el almacenamiento en caché de archivos, las descargas paralelas se habilitarán automáticamente en las versiones 2.12 y posteriores de Cloud Storage FUSE. Si usas una versión anterior de Cloud Storage FUSE, configura la opción enable-parallel-downloads en true para habilitar las descargas paralelas.

Configura propiedades compatibles para descargas paralelas

De manera opcional, puedes configurar las siguientes propiedades de compatibilidad para las descargas paralelas con la CLI de Cloud Storage FUSE o un archivo de configuración de Cloud Storage FUSE:

Descripción de la propiedad Opción de CLI Campo del archivo de configuración
Es la cantidad máxima de trabajadores que se pueden generar por archivo para descargar el objeto de Cloud Storage a la caché de archivos. --file-cache-parallel-downloads-per-file file-cache:parallel-downloads-per-file
Es la cantidad máxima de trabajadores que se pueden generar en cualquier momento en todos los trabajos de descarga de archivos. De forma predeterminada, se establece el doble de los núcleos de CPU en tu máquina. Para especificar que no haya límite, ingresa el valor `-1`. --file-cache-max-parallel-downloads file-cache:max-parallel-downloads
Es el tamaño de cada solicitud de lectura en MiB que cada trabajador realiza en Cloud Storage cuando descarga el objeto en la caché de archivos. Ten en cuenta que una descarga en paralelo solo se activa si el archivo que se lee es del tamaño especificado. --file-cache-download-chunk-size-mb file-cache:download-chunk-size-mb

Inhabilita las descargas paralelas

Para inhabilitar las descargas paralelas, establece una de las siguientes opciones en false:

  • Opción de la CLI de --file-cache-enable-parallel-downloads
  • Campo file-cache:enable-parallel-downloads

¿Qué sigue?