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 respecto de los números esperados debido a varios factores, como el uso del almacenamiento en caché, la cantidad de VMs del cliente, 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 las instancias de Filestore según su nivel de servicio y su 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 la capacidad mínima y máxima para cada nivel de servicio. Entre estos límites, el rendimiento se escala de forma lineal a medida que aumenta 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 y escritura a 24,000/8,000 IOPS de lectura y escritura.
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 7
conexiones para el nivel de servicio zonal y hasta 2
conexiones para los niveles regionales y empresariales. 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 cliente obtenga un ancho de banda de lectura de alrededor de 16 Gbps
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 las opciones rsize
y wsize
, 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=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 de 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 cliente se comunica con una sola VM del clúster de Filestore, independientemente de la cantidad de conexiones NFS por cliente especificadas con 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 sola VM de clúster de Filestore.
Mejora el rendimiento de 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 gcloud CLI, pueden ser lentas. Para mitigar los problemas de rendimiento, prueba la 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 ofrecen un con el mejor rendimiento posible 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 únicas que contiene la región doble. Por ejemplo, si tus datos de Cloud Storage residen en
us-central1,us-west1
, asegúrate de que tu VM cliente y tu instancia de Filestore residan enus-central1
.Como referencia, verifica el rendimiento de una VM adjunta a un PD y compáralo con el rendimiento de una instancia de Filestore.
Si el rendimiento de la VM conectada al PD es similar o más lento en comparación con la instancia de Filestore, es posible que esto indique un cuello de botella de rendimiento no relacionado con Filestore. Para mejorar el modelo de referencia de los recursos que no son de Filestore, puedes ajustar la Propiedades de gcloud CLI asociadas con cargas compuestas paralelas. Para obtener más información, consulta Cómo las herramientas y las APIs usan cargas compuestas paralelas.
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 desde Cloud Storage.
Para las instancias zonales, regionales y empresariales, se necesitan al menos cuatro VMs cliente para aprovechar el rendimiento completo. Esto garantiza que todas las VM del clúster subyacente de Filestore se utilicen por completo. 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 no se recomienda este método de comparativas de rendimiento para instancias zonales, 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