Rendimiento de Cloud Storage FUSE

En esta página, se proporciona orientación para mejorar el rendimiento de Cloud Storage FUSE.

Mejora el rendimiento de lectura y escritura

Para mejorar el rendimiento de lectura y escritura, te recomendamos lo siguiente:

  • Habilita el almacenamiento en caché: Cloud Storage FUSE ofrece cuatro tipos de caché opcionales del cliente que almacenan tipos específicos de datos y metadatos de forma local para ayudar a mejorar el rendimiento:

    El almacenamiento en caché del FUSE de Cloud Storage funciona con cualquier directorio especificado por el usuario que esté respaldado por el almacenamiento que elijas. El rendimiento de la caché de Cloud Storage FUSE coincide con el almacenamiento subyacente que usa la caché con una sobrecarga mínima.

  • Habilita las descargas en paralelo para acelerar las lecturas: Habilita las descargas en paralelo para acelerar las lecturas de archivos grandes de más de 1 GB. Para obtener más información, consulta Mejora el rendimiento de lectura mediante descargas paralelas.

  • Ejecuta cargas de trabajo de lectura secuencial cuando sea posible: Cloud Storage FUSE funciona mejor para las cargas de trabajo de lectura secuencial que las cargas de trabajo de lectura aleatoria. Cloud Storage FUSE usa una heurística para detectar cuándo se lee un archivo de forma secuencial, lo que permite que Cloud Storage FUSE emita menos solicitudes de lectura más grandes a Cloud Storage con la misma conexión TCP.

  • Ajusta los tamaños del archivo según el tipo de lectura: Para optimizar el rendimiento de lectura secuencial, te recomendamos que subas y leas archivos de 5 MB a 200 MB de tamaño. Para optimizar el rendimiento de lectura aleatoria, te recomendamos subir y leer archivos de 2 MB aproximadamente.

  • Activa el espacio de nombres jerárquico en los buckets: Para aumentar las velocidades de rendimiento de lectura y escritura, y garantizar la atomicidad para operaciones de consultas por segundo (QPS) iniciales más altas, te recomendamos que actives el espacio de nombres jerárquico en los buckets. Para obtener más información sobre cómo los buckets habilitados para el espacio de nombres jerárquico pueden mejorar el rendimiento de FUSE de Cloud Storage, consulta Activa el espacio de nombres jerárquico para activar los buckets.

Mejora el rendimiento de la primera lectura

Antes de ejecutar la carga de trabajo, te recomendamos que primero crees una lista de manera recursiva de los archivos en tu bucket activado para propagar las cachés de estadísticas y tipos con anticipación y mejorar el rendimiento en la primera ejecución en un método por lotes más rápido:

ls -R MOUNT_POINT > /dev/null

Usa el almacenamiento en caché de archivos para mejorar la capacidad de procesamiento

Cloud Storage FUSE tiene una latencia más alta que un sistema de archivos local. La capacidad de procesamiento se reduce cuando lees o escribes archivos pequeños de a uno, ya que genera varias llamadas a la API separadas. Leer o escribir varios archivos grandes a la vez puede ayudar a aumentar la capacidad de procesamiento. Usa la función de caché de archivos de Cloud Storage FUSE para mejorar el rendimiento de E/S pequeñas y aleatorias. Para obtener más información sobre el almacenamiento en caché de archivos y cómo habilitar la función, consulta Cómo usar el almacenamiento en caché de archivos de Cloud Storage FUSE.

Activa buckets con el espacio de nombres jerárquico habilitado

Para garantizar la atomicidad de las operaciones de consultas por segundo (QPS) iniciales más altas, como los puntos de control y los cambios o cambios de nombre de directorios, te recomendamos que actives los buckets con espacio de nombres jerárquico. El espacio de nombres jerárquico organiza tus datos en una estructura de sistema de archivos jerárquica, lo que hace que las operaciones dentro del bucket sean más eficientes. Las llamadas a objeto de lista (BucketHandle.Objects) se reemplazan por llamadas a obtener carpeta, lo que genera tiempos de respuesta más rápidos y menos llamadas generales a la lista para cada operación.

Aumenta el tamaño de lectura anticipada para mejorar la capacidad de procesamiento de lectura grande

Puedes mejorar la capacidad de procesamiento de lectura grande si aumentas la cantidad de datos que se precargan con cada solicitud de lectura mediante el parámetro del kernel de Linux read_ahead_kb en tu máquina local. Te recomendamos que aumentes el parámetro del kernel read_ahead_kb a 1 MB en lugar de usar la cantidad predeterminada de 128 KB que se establece en la mayoría de las distribuciones de Linux. Se requieren permisos sudo o root para aumentar correctamente el parámetro del kernel.

Para aumentar el parámetro del kernel read_ahead_kb a 1 MB para un directorio activado de Cloud Storage FUSE específico, usa el siguiente comando, en el que /path/to/mount/point es tu punto de activación de Cloud Storage FUSE. Tu bucket debe estar activado en Cloud Storage FUSE antes de ejecutar el comando. De lo contrario, no aumentará el parámetro del kernel.

  export MOUNT_POINT=/path/to/mount/point
  echo 1024 | sudo tee /sys/class/bdi/0:$(stat -c "%d" $MOUNT_POINT)/read_ahead_kb

Logra la capacidad de procesamiento máxima

Para alcanzar la capacidad de procesamiento máxima, usa una máquina con recursos de CPU suficientes para controlar la capacidad de procesamiento y saturar la tarjeta de interfaz de red (NIC). Los recursos de CPU insuficientes pueden causar una limitación de Cloud Storage FUSE.

Si usas Google Kubernetes Engine, aumenta la asignación de CPU al contenedor del archivo adicional de Cloud Storage FUSE si tus cargas de trabajo necesitan una capacidad de procesamiento mayor. Puedes aumentar los recursos que usa el contenedor de archivo adicional o asignar recursos ilimitados.

Evalúa las necesidades de IOPS en consultas por segundo

Filestore es una mejor opción que Cloud Storage FUSE para cargas de trabajo que requieren altas operaciones de entrada y salida instantáneas por segundo (IOPS), también conocidas como consultas por segundo en Cloud Storage. Filestore también es la mejor opción para IOPS muy altas en un solo sistema de archivos con menor latencia.

Como alternativa, también puedes usar la función de caché de archivos de Cloud Storage FUSE para compilar en función de las características de rendimiento del medio de caché subyacente si proporciona IOPS altas y baja latencia.

Realiza pruebas de carga

Si deseas obtener instrucciones para realizar pruebas de carga en Cloud Storage FUSE, consulta Comparativas de rendimiento en la documentación de GitHub.

¿Qué sigue?