Rendimiento y prácticas recomendadas de Cloud Storage FUSE

En esta página, se describe el rendimiento de Cloud Storage FUSE en términos de latencia, ancho de banda, almacenamiento en caché y reintentos, así como las prácticas recomendadas cuando se usa Cloud Storage FUSE.

Lecturas y escrituras

Cloud Storage FUSE funciona mejor para las cargas de trabajo de lectura y escritura secuenciales que las cargas de trabajo de lectura y escritura aleatorias. 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.

Para optimizar el rendimiento de lectura secuencial, se recomienda que subas y leas archivos de 5 MB a 200 MB de tamaño. Para optimizar el rendimiento de lectura aleatoria, se recomienda subir y leer archivos de 2 MB aproximadamente.

IOPS (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 y con menor latencia.

Latencia y 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.

La latencia del sistema de archivos de Cloud Storage FUSE afecta a rsync, que lee y escribe solo un archivo a la vez. Para transferir varios archivos hacia o desde tu bucket en paralelo, debes intentar usar gsutil mediante la ejecución de gsutil -m rsync. Para obtener más información, consulta la documentación de gsutil rsync.

Límite de frecuencia

Para limitar la frecuencia de tráfico que Cloud Storage FUSE envía a Cloud Storage, puedes usar las siguientes opciones como parte de tu comando gcsfuse mount:

  • La opción --limit-ops-per-sec controla la velocidad a la que Cloud Storage FUSE envía solicitudes a Cloud Storage.

  • La opción --limit-bytes-per-sec controla el ancho de banda en el que Cloud Storage FUSE descarga los datos desde Cloud Storage.

Para obtener más información sobre estas opciones, consulta la documentación de gcsfuse mount.

Todos los límites de frecuencia son aproximados y se realizan durante un período de 8 horas. De forma predeterminada, no se aplican límites de frecuencia.

Control del procedimiento de carga

De forma predeterminada, las solicitudes que fallaron de Cloud Storage FUSE a Cloud Storage se reintentan con una retirada exponencial hasta una duración de retirada especificada, que tiene un valor de 1 (un minuto) de forma predeterminada. Una vez que la duración de la retirada supera el límite especificado, se detiene el reintento. Puedes usar la opción --max-retry-sleep como parte de una llamada gcsfuse mount para especificar la duración de la retirada. Un valor de 0 inhabilita los reintentos.

Para obtener más información sobre la opción --max-retry-sleep, consulta la documentación de gcsfuse mount.

Almacenamiento en caché

De forma predeterminada, Cloud Storage FUSE usa el almacenamiento en caché de estadísticas y de tipo. Puedes controlar el comportamiento de almacenamiento en caché de Cloud Storage FUSE mediante las opciones --stat-cache-capacity, --stat-cache-ttl y --type-cache-ttl como parte de una llamada gcsfuse mount:

  • La opción --stat-cache-capacity controla el tamaño de la caché de estadísticas.

  • La opción --stat-cache-ttl especifica por cuánto tiempo Cloud Storage FUSE almacena en caché las entradas de estadísticas.

  • La opción --type-cache-ttl especifica por cuánto tiempo Cloud Storage FUSE almacena en caché la asignación de objetos en Cloud Storage a su tipo correspondiente, como archivos o directorios.

Para obtener más información sobre las opciones de almacenamiento en caché de estadísticas y de tipo, consulta la documentación de gcsfuse mount.

Consideraciones

Cuando enumeras todos los objetos en un bucket activado (p. ej., mediante la ejecución de ls), Cloud Storage FUSE llama a Objects: API de list en Cloud Storage. La API pagina los resultados, lo que significa que Cloud Storage FUSE puede necesitar emitir varias llamadas, según cuántos objetos haya en tu bucket. Ten en cuenta que esto puede hacer que una operación de lista sea costosa y lenta.

Comparativas

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