Desempenho

Esta página descreve o desempenho médio esperado e as configurações de desempenho recomendadas para o Filestore. Ela também mostra como testar o desempenho das instâncias do Filestore.

Desempenho esperado

Cada nível de serviço do Filestore fornece um nível diferente de desempenho. Os níveis Básico oferecem desempenho consistente além de uma capacidade de instância de 10 TB. Para instâncias de nível de alto escalonamento, o desempenho aumenta ou diminui linearmente à medida que a capacidade aumenta ou diminui.

O desempenho de qualquer instância pode ser diferente dos números informados devido a vários fatores, como o uso de armazenamento em cache no cliente ou no servidor, o tipo de máquina do Compute Engine usado para a instância de VM do cliente, e a carga de trabalho que está sendo testada.

Nas tabelas a seguir, você vê o desempenho esperado das instâncias do Filestore com base no nível de serviço e na capacidade configurada:

Desempenho Capacidade (TB) IOPS de leitura/gravação Tput de leitura/gravação (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

Escalonamento de desempenho em nível SSD de alto escalonamento e desempenho de cliente

O desempenho das instâncias de nível de alto escalonamento é dimensionado linearmente com a capacidade alocada em 10 etapas TB. A tabela a seguir mostra a quantidade de desempenho obtido a cada 10 TB de capacidade.

Especificação IOPS máximas sustentadas1 Tput máximo sustentado2 (MB/s)
Leitura por 10TB 15.000 500
Gravação por 10TB 5.000 110

Esses números de desempenho também correspondem ao limite de desempenho por cliente para cada instância. Por exemplo, mesmo que uma instância de nível de alto escalonamento com 60 TB de capacidade tenha uma capacidade máxima total de leitura/gravação sustentada de 3.000/660 MB/s, a capacidade máxima atingível por cliente é de 500/110 MB/s. Não há limite de desempenho por cliente para instâncias de nível básico.

Tipo de máquina de cliente recomendado

Recomendamos ter um máquina do Compute Engine de tipo n1-standard-8 ou melhor para a instância de VM do cliente. Isso permite que o cliente atinja aproximadamente 16 Gbps de largura de banda de leitura para cargas de trabalho compatíveis com cache.

Opções de ativação do cliente Linux

Recomendamos o uso das opções de montagem NFS padrão, especialmente usando uma montagem hard, async e as opções rsize e wsize definidas como 1 MB para alcançar o melhor desempenho em instâncias de VM do cliente Linux. Para mais informações sobre as opções de ativação do NFS, consulte nfs.

Clique para expandir: opções de mount padrão do NFS

Opção padrão Descrição
hard O cliente NFS repete solicitações NFS indefinidamente.
timeo=600 O cliente NFS aguarda 600 segundos (60 segundos) antes de tentar novamente uma solicitação NFS.
retrans=3 O cliente NFS tenta fazer solicitações NFS três vezes antes de realizar outras ações de recuperação.
rsize=1048576 O cliente NFS pode receber, no máximo, 1.048576 bytes (1 MiB) do servidor NFS por solicitação READ.
wsize=1048576 O cliente NFS pode receber, no máximo, 1.048576 bytes (1 MiB) do servidor NFS por solicitação WRITE.
resvport O cliente NFS usa uma porta de origem com privilégios ao se comunicar com o servidor NFS para esse ponto de montagem.
async O cliente NFS atrasa o envio de gravações de aplicativos para o servidor NFS até que determinadas condições sejam atendidas.
Cuidado: o uso da opção sync reduz significativamente o desempenho.

Como testar o desempenho

Se você estiver usando o Linux, utilize a ferramenta fio para comparar as capacidades de leitura e gravação e a IOPS para instâncias do nível básico. Os exemplos nesta seção mostram comparativos comuns que é possível executar. Para garantir o melhor desempenho, pode ser necessário executar a ferramenta fio de várias instâncias de VM do cliente. Esse método para desempenho de comparativo de mercado não fornece resultados precisos para instâncias de nível de alto escalonamento.

O exemplo a seguir compara a capacidade máxima de gravação:

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

O exemplo a seguir compara a IOPS máxima de gravação:

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

O exemplo a seguir compara as capacidades máximas de leitura:

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

O exemplo a seguir compara a IOPS máxima de leitura:

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. Os números são medidos com base em E/S de leituras/gravações em 4K. 

  2. Os números são medidos com base em E/S de leituras/gravações em 1M.