Optimiza y prueba el rendimiento de las instancias

En esta página, se describe el rendimiento promedio esperado y la configuración de rendimiento recomendada para Filestore. También se muestra cómo puedes probar el rendimiento de tus instancias de Filestore.

Rendimiento esperado

Cada nivel de servicio de Filestore proporciona un nivel diferente de rendimiento. El rendimiento de cualquier instancia puede variar del esperado debido a varios factores, como el uso de almacenamiento en caché, la cantidad de clientes el tipo de máquina de las VMs del cliente y la carga de trabajo probada.

En las siguientes tablas, se muestra el rendimiento esperado de Filestore instancias según su nivel de servicio y capacidad configurada:

Rendimiento Capacidad IOPS de lectura y escritura Capacidad de procesamiento de lectura y escritura (MiB/s)
BASIC_HDD 1 TiB a 10 TiB 600/1,000 100/100
BASIC_HDD De 10 TiB a 63.9 TiB 1,000/5,000 180/120
BASIC_SSD De 2.5 TiB a 63.9 TiB 60,000/25,000 1,200/350
ZONAL 1 TiB 9,200/2,600 260/88
ZONAL 9.75 TiB 89.700/25.350 2,535/858
ZONAL 10 TiB 92,000/26,000 2,600/880
ZONAL 100 TiB 920,000/260,000 26,000/8,800
REGIONAL 1 TiB 12,000/4,000 120/100
REGIONAL 9.75 TiB 117,000/39,000 1.170/975
REGIONAL 10 TiB 92,000/26,000 2,600/880
REGIONAL 100 TiB 920,000/260,000 26,000/8,800
ENTERPRISE 1 TiB 12,000/4,000 120/100
ENTERPRISE 10 TiB 120,000/40,000 1,200/1,000

En la tabla anterior, se muestra el rendimiento esperado en los niveles mínimo y máximo. para cada nivel de servicio. Entre estos límites, el rendimiento escala de manera lineal. las escalas de capacidad. Por ejemplo, si duplicas tu instancia empresarial de 1 TiB a 2 TiB, el rendimiento esperado de la instancia se duplica de 12,000/4,000 IOPS de lectura y escritura a 24,000/8,000 de lectura y escritura o IOPS.

En situaciones de un solo cliente o con pocos clientes, debes aumentar la cantidad de TCP conexiones con el nconnect de activación para lograr el máximo rendimiento de NFS. Recomendamos especificar hasta Conexiones 7 para el nivel de servicio zonal y hasta 2 conexiones para el regional y empresarial. En general, cuanto mayor sea la capacidad de los archivos compartidos y cuanto menos VMs del cliente se conecten, más rendimiento obtendrás al que especifica conexiones adicionales con nconnect.

Tipo recomendado de máquina cliente

Recomendamos que tengas un tipo de máquina de Compute Engine, como n2-standard-8, que proporciona un ancho de banda de salida de 16 Gbps. Este ancho de banda de salida permite que el lograr un ancho de banda de lectura de aproximadamente 16 Gbps para almacenar en caché de las cargas de trabajo. Para obtener más contexto, consulta Ancho de banda de red.

Opciones de activación de cliente de Linux

Recomendamos usar las siguientes opciones de activación de NFS, en especial hard montaje, async, y las opciones rsize y wsize, para lograr la mejor rendimiento en instancias de VM cliente de Linux. Para obtener más información sobre las opciones de activación de NFS, consulta nfs.

Opción predeterminada Descripción
hard El cliente de NFS reintenta las solicitudes NFS indefinidamente.
timeo=600 El cliente de NFS espera 600 decisegundos (60 segundos) antes de volver a intentar una solicitud NFS.
retrans=3 El cliente de NFS intenta las solicitudes NFS tres veces antes de tomar más medidas de recuperación.
rsize=262144 El cliente NFS puede recibir un máximo de 262,144 bytes del servidor NFS por solicitud READ.
Nota: Para las instancias de nivel básico, establece el valor rsize en 1048576.
wsize=1048576 El cliente NFS puede enviar un máximo de 1,048,576 bytes (1 MiB) al servidor NFS por solicitud WRITE.
resvport El cliente de NFS utiliza un puerto de origen privilegiado cuando se comunica con el servidor NFS de este punto de activación.
async El cliente de NFS retrasa el envío de escrituras de la aplicación al servidor NFS hasta que se cumplen determinadas condiciones.
Precaución: Usar la opción sync reduce significativamente el rendimiento.

Rendimiento de VM de uno o varios clientes

Los niveles de servicio escalables de Filestore tienen un rendimiento optimizado para con varias VMs de clientes, no con una VM de un cliente.

Para las instancias zonales, regionales y empresariales, se usan al menos cuatro VMs del cliente necesarias para aprovechar el rendimiento completo. Esto garantiza que todas las VMs en el clúster subyacente de Filestore se usan por completo.

Para mayor contexto, el clúster de Filestore escalable más pequeño tiene cuatro VMs. Cada VM de cliente se comunica con un solo clúster de Filestore independientemente de la cantidad de conexiones NFS por cliente especificadas mediante nconnect activación. Si usas una VM única de cliente, las operaciones de lectura y escritura solo se que se realizan desde una sola VM de clúster de Filestore.

Mejora el rendimiento en los recursos de Google Cloud

Operaciones en varios recursos de Google Cloud, como la copia de datos de Cloud Storage a una instancia de Filestore con gsutil puede ser lenta. Para ayudar a mitigar los problemas de rendimiento, prueba lo siguiente:

  • Asegúrate de que el bucket de Cloud Storage, la VM del cliente y Filestore de Compute Engine residen en la misma región.

    Las regiones dobles brindan un rendimiento óptimo para los datos almacenados en Cloud Storage. Si usas esta opción, asegúrate de que que otros recursos residen en una de las regiones individuales incluidas en la y birregional. Por ejemplo, si tus datos de Cloud Storage residen en us-central1,us-west1, asegúrate de que la VM y Filestore de tu cliente residen en us-central1.

  • Como punto de referencia, verifica el rendimiento de una VM conectada al PD y y comparar el rendimiento de una instancia de Filestore.

    • Si la VM conectada al PD tiene un rendimiento similar o más lento en comparación con de la instancia de Filestore, esto podría indicar un aumento un cuello de botella no relacionado con Filestore. Prueba lo siguiente para mejorar el rendimiento de referencia de los recursos que no son de Filestore:

      • Aplica la gsutil -m de 12 a 1 con la nueva opción de compresión. Esta opción permite operaciones admitidas, incluidas cp, mv, y rsync para que se ejecuten en paralelo.

      • Aplica la siguiente configuración de gsutil. Cada uno es mutable boto de configuración establecidos en el archivo de configuración boto. Los usuarios pueden modificar el archivo directamente (recomendado) o mediante la opción gsutil -o:

    • Si el rendimiento de la instancia de Filestore es notable más lenta que la VM conectada al PD, intenta distribuir la operación en varias VMs.

      • Esto ayuda a mejorar el rendimiento de las operaciones de lectura de Cloud Storage.

      • Para instancias zonales, regionales y empresariales, al menos cuatro VMs del cliente para aprovechar al máximo el rendimiento. Esto garantiza que todos de las VMs en el clúster subyacente de Filestore están completamente que se usan. Para obtener más información, consulta Rendimiento de VM de uno o varios clientes.

Prueba el rendimiento

Si usas Linux, puedes usar el archivo fio para comparar la capacidad de procesamiento de lectura y escritura y las IOPS de las instancias de nivel básico. Ten en cuenta que este método para comparar el rendimiento no se recomienda regionales y empresariales.

En los ejemplos de esta sección, se muestran comparativas comunes que puedes ejecutar. Te recomendamos ejecutar fio desde varias instancias de VM de cliente para lograr un rendimiento máximo.

En el siguiente ejemplo, se compara la capacidad de procesamiento de escritura máxima:

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=write --blocksize=1m --iodepth=64 --readwrite=write

En el siguiente ejemplo, se comparan las IOPS de escritura máxima:

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=randwrite --blocksize=4k --iodepth=256 --readwrite=randwrite

En el siguiente ejemplo, se compara la capacidad de procesamiento de lectura máxima:

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=read --blocksize=1m --iodepth=64 --readwrite=read

En el siguiente ejemplo, se comparan las IOPS de lectura máxima:

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=randread --blocksize=4k --iodepth=256 --readwrite=randread

¿Qué sigue?