Rendimiento

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

Rendimiento esperado

Cada nivel de servicio de Filestore proporciona un nivel de rendimiento diferente. Los niveles Básico ofrecen un rendimiento coherente con una capacidad de más de 10 instancias TB. Para las instancias de nivel de escala alta, el rendimiento aumenta o disminuye de forma lineal a medida que la capacidad aumenta o disminuye.

El rendimiento de una instancia dada puede ser diferente de los valores informados debido a una variedad de factores, como el uso del almacenamiento en caché en el cliente o servidor, el tipo de máquina de Compute Engine que se usa para la instancia de VM cliente y la carga de trabajo que se prueba.

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 (TB) IOPS de lectura y escritura Tput de lectura/escritura (MB/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 60 90,000/30,000 3,000/660
HIGH_SCALE_SSD 320 480,000/160,000 16,000/3,520

Escalamiento de rendimiento de nivel SSD de escala masiva y rendimiento por cliente

El rendimiento de las instancias de nivel de escala alto se escala de manera lineal con la capacidad asignada en 10 pasos TB. En la siguiente tabla, se muestra la cantidad de rendimiento obtenida con cada 10 TB de capacidad.

Especificación IOPS máximas sostenidas 1 Máximo rendimiento constante 2 (MB/s)
Lectura por 10TB 15,000 500
Escritura por 10TB 5,000 110

Estos números de rendimiento también corresponden al límite de rendimiento por cliente de cada instancia. Por ejemplo, a pesar de que una instancia de nivel alto con 60 TB de capacidad tiene una capacidad de procesamiento de lectura y escritura máxima total de 3,000 / 660 MB/s, la capacidad de procesamiento máxima por cliente es de 500/110 MB/s. No hay un límite de rendimiento por cliente para las instancias de nivel Básico.

Tipo recomendado de máquina cliente

Recomendamos tener un tipo de máquina de Compute Engine de n1-standard-8 o mejor para la instancia de VM del cliente. Esto permite que el cliente obtenga un ancho de banda de lectura de alrededor de 16 Gbps para cargas de trabajo compatibles con la caché.

Opciones de activación de cliente de Linux

Recomendamos utilizar las opciones de activación NFS predeterminadas, especialmente el uso de una activación hard, async, y tener las opciones rsize y wsize establecidas en 1 MB, 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.

Prueba el rendimiento

Si usas Linux, puedes usar la herramienta fio para comparar la capacidad de procesamiento y las IOPS de lectura y escritura para las instancias de nivel Básico. Los ejemplos de esta sección muestran comparativas comunes que podría ejecutar. Es posible que debas ejecutar varias de ellas desde varias instancias de VM de cliente para alcanzar el máximo rendimiento. Este método para el rendimiento de las comparativas no proporcionará resultados precisos para las instancias de nivel de gran escala.

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

fio --ioengine=sync --direct=0 \
--fsync_on_close=1 --randrepeat=0 --nrfiles=1  --name=seqwrite --rw=write \
--bs=1m --size=20G --end_fsync=1 --fallocate=none  --overwrite=0 --numjobs=1 \
--directory=/mnt/gcfs --loops=10

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

fio --ioengine=sync --direct=0 \
--fsync_on_close=1 --randrepeat=0 --nrfiles=1  --name=randwrite --rw=randwrite \
--bs=4K --size=1G --end_fsync=1 --fallocate=none  --overwrite=0 --numjobs=80 \
--sync=1 --directory=/mnt/standard --loops=10

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

fio --ioengine=sync --direct=0 \
--fsync_on_close=1 --randrepeat=0 --nrfiles=1  --name=seqread --rw=read \
--bs=1m --size=240G --end_fsync=1 --fallocate=none  --overwrite=0 --numjobs=1 \
--directory=/mnt/ssd --invalidate=1 --loops=10

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

fio --ioengine=sync --direct=0 \
--fsync_on_close=1 --randrepeat=0 --nrfiles=1  --name=randread --rw=randread \
--bs=4K --size=1G --end_fsync=1 --fallocate=none  --overwrite=0 --numjobs=20 \
--sync=1 --invalidate=1 --directory=/mnt/standard  --loops=10

  1. Los números se miden según IO de lectura y escritura en 4K. 

  2. Los números se miden según IO de lectura y escritura en 1M.