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 una instancia determinada puede variar de los números esperados debido a varios factores, como el uso del almacenamiento en caché, la cantidad de VM del cliente, el tipo de máquina de las VM del cliente y la carga de trabajo probada.
En las siguientes tablas, se muestra el rendimiento esperado de las instancias de Filestore según su nivel de servicio y capacidad configurada:
Rendimiento | Capacidad (TiB ) |
IOPS de lectura y escritura | Capacidad de procesamiento de lectura/escritura (MiB/s) |
---|---|---|---|
BASIC_HDD |
1–10 | 600/1,000 | 100/100 |
BASIC_HDD |
10–63.9 | 1,000/5,000 | 180/120 |
BASIC_SSD |
2.5–63.9 | 60,000/25,000 | 1,200/350 |
HIGH_SCALE_SSD |
10 | 92.000/26.000 | 2,600/880 |
HIGH_SCALE_SSD |
100 | 920,000/260,000 | 26,000/8,800 |
ENTERPRISE |
1 | 12,000/4,000 | 120/100 |
ENTERPRISE |
10 | 120,000/40,000 | 1,200/1,000 |
En la tabla anterior, se muestra el rendimiento esperado en la capacidad máxima y mínima tanto para la escala masiva como para la empresa. Entre estos límites, el rendimiento escala de forma lineal a medida que se amplía la capacidad. Por ejemplo, si duplicas la capacidad de 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/escritura a 24,000/8,000 IOPS de lectura/escritura.
En situaciones de uno o pocos clientes, debes aumentar la cantidad de conexiones de TCP con la opción de activación nconnect
para lograr el rendimiento máximo de NFS. Recomendamos especificar hasta 7
conexiones para el nivel de escala masiva y hasta 2
conexiones para el nivel de Enterprise. En general, cuanto mayor sea la capacidad del archivo compartido y menor sea la cantidad de VM de cliente que se conectan, más rendimiento obtendrás mediante la especificación de conexiones adicionales con nconnect
.
Tipo recomendado de máquina cliente
Recomendamos tener un tipo de máquina de Compute Engine, como n2-standard-8
, que proporcione un ancho de banda de salida de 16 Gbps
. Este ancho de banda de salida permite que el cliente obtenga aproximadamente 16 Gbps
de ancho de banda de lectura para cargas de trabajo compatibles con la caché. 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 una activación hard
, async
, y que tenga las opciones rsize
y wsize
establecidas en 1 MiB
para lograr el 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=1048576 |
El cliente de NFS puede recibir un máximo de 1,048,576 bytes (1 MiB) del servidor NFS por solicitud READ . |
wsize=1048576 |
El cliente de NFS puede recibir un máximo de 1,048,576 bytes (1 MiB) del 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 una o varias VM del cliente
Los niveles de servicio escalables de Filestore están optimizados para el rendimiento de varias VM de cliente, no de una sola VM de cliente.
Para instancias de nivel Enterprise y de Escala masiva, se necesitan al menos cuatro VM de cliente a fin de aprovechar el rendimiento completo. Esto garantiza que todas las VM en el clúster subyacente de Filestore se usen por completo.
Para agregar contexto, el clúster de Filestore escalable más pequeño tiene cuatro VM. Cada VM cliente se comunica con una sola VM de clúster de Filestore, sin importar la cantidad de conexiones NFS por cliente especificadas mediante la opción de activación nconnect
. Si usas una sola VM de cliente, las operaciones de lectura y escritura solo se realizan desde una única VM de clúster de Filestore.
Mejorar el rendimiento en los recursos de Google Cloud
Las operaciones en varios recursos de Google Cloud, como copiar datos de Cloud Storage a una instancia de Filestore con gsutil
, pueden ser lentas. Para mitigar problemas de rendimiento, prueba lo siguiente:
Asegúrate de que el depósito de Cloud Storage, la VM de cliente y la instancia de Filestore residan en la misma región.
Las regiones dobles proporcionan una opción de máximo rendimiento para los datos almacenados en Cloud Storage. Si usas esta opción, asegúrate de que los otros recursos residan en una de las regiones individuales que componen la región doble. Por ejemplo, si tus datos de Cloud Storage residen en
us-central1+us-east1
, asegúrate de que tu VM cliente y tu instancia de Filestore residan enus-central1
.Como punto de referencia, verifica el rendimiento de una VM conectada a un PD y compáralo con el de una instancia de Filestore.
Si la VM adjunta al PD tiene un rendimiento similar o más lento en comparación con la instancia de Filestore, esto podría indicar un cuello de botella de rendimiento no relacionado con Filestore. Prueba lo siguiente para mejorar el rendimiento del modelo de referencia de los recursos que no son de Filestore:
Aplica la opción
gsutil -m
. Esta opción permite que las operaciones compatibles, incluidascp
,mv
yrsync
, se ejecuten en paralelo.Aplica las siguientes configuraciones de
gsutil
. Cada uno es un valor mutable deboto
configurado en el archivo de configuraciónboto
. Los usuarios pueden modificar el archivo directamente (recomendado) o mediante la opción-o
:
Si el rendimiento de la instancia de Filestore es mucho más lento que el de la VM adjunta al PD, intenta distribuir la operación en varias VM.
Esto ayuda a mejorar el rendimiento de las operaciones de lectura desde Cloud Storage.
Para las instancias de nivel Enterprise y de Escala masiva, se necesitan al menos cuatro VM de cliente a fin de aprovechar el rendimiento completo. Esto garantiza que todas las VM en el clúster subyacente de Filestore se usen por completo. Para obtener más información, consulta Rendimiento de una y varias VM de cliente.
Prueba el rendimiento
Si usas Linux, puedes usar la herramienta fio para comparar la capacidad de procesamiento de lectura y escritura y las IOPS de las instancias de nivel Básico. 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. Este método de comparativas de rendimiento no proporciona resultados precisos para las instancias de nivel empresarial y de gran escala.
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?
- Soluciona los problemas relacionados con el rendimiento de Filestore.