Esta página descreve os limites de desempenho das instâncias do Filestore, além das opções de teste e configurações de desempenho recomendadas.
Cada nível de serviço do Filestore oferece um nível diferente de desempenho que pode variar devido a fatores como o uso de armazenamento em cache, o número de VMs de cliente, o tipo de máquina das VMs de cliente e a carga de trabalho testada.
A tabela a seguir lista o desempenho máximo que você pode alcançar ao definir a capacidade mínima e máxima para cada nível de serviço.
Todos os valores da tabela são limites estimados e não garantidos. Para mais informações sobre limites e configurações de desempenho personalizados, consulte Limites de desempenho personalizados.
Nível de serviço | Capacidade | Ler IOPS | Gravar IOPS | Capacidade de leitura (MiBps) | Capacidade de gravação (MiBps) | Suporte a performance personalizada |
---|---|---|---|---|---|---|
BASIC_HDD | De 1 TiB a 10 TiB | 600 | 1.000 | 100 | 100 | Não |
De 10 TiB a 63,9 TiB | 1.000 | 5.000 | 180 | 120 | Não | |
BASIC_SSD | De 2,5 TiB a 63,9 TiB | 60.000 | 25.000 | 1.200 | 350 | Não |
ZONAL | 1 TiB | 9.200 | 2.600 | 260 | 88 | Sim |
9,75 TiB | 89.700 | 25.350 | 2.535 | 858 | Sim | |
10 TiB | 92.000 | 26.000 | 2.600 | 880 | Sim | |
100 TiB | 920.000 | 260.000 | 26.000 | 8.800 | Sim | |
REGIONAL | 1 TiB | 12.000 | 4.000 | 120 | 100 | Sim |
9,75 TiB | 117.000 | 39.000 | 1.170 | 975 | Sim | |
10 TiB | 92.000 | 26.000 | 2.600 | 880 | Sim | |
100 TiB | 920.000 | 260.000 | 26.000 | 8.800 | Sim | |
ENTERPRISE | 1 TiB | 12.000 | 4.000 | 120 | 100 | Não |
10 TiB | 120.000 | 40.000 | 1.200 | 1.000 | Não |
Escalonamento de performance
A performance é escalonada linearmente com a capacidade dentro dos limites de desempenho listados na tabela anterior. Por exemplo, se você dobrar a capacidade da instância empresarial de 1 TiB para 2 TiB, o limite de desempenho da instância vai dobrar de 12.000/4.000 IOPS de leitura e gravação para 24.000/8.000 IOPS de leitura e gravação.
Em cenários de cliente único e de poucos clientes, é preciso aumentar o número de conexões
TCP com a opção de montagem
nconnect
para atingir o desempenho máximo do NFS. Recomendamos especificar até
7
conexões para o nível de serviço zonal e até 2
conexões para os
níveis regional e Enterprise. Em geral, quanto maior a capacidade de compartilhamento
de arquivos e menos VMs de cliente conectadas, mais desempenho você terá
ao especificar outras conexões com nconnect
.
Desempenho personalizado
Defina a performance personalizada para configurar o desempenho de acordo com as necessidades da carga de trabalho, independentemente da capacidade especificada. É possível especificar uma proporção de IOPS por TiB ou definir um número fixo de IOPS. Para mais detalhes, consulte Desempenho personalizado.
Tipo de máquina de cliente recomendado
Recomendamos um tipo de máquina do Compute Engine, como n2-standard-8
, que ofereça uma largura de banda de saída de 16 Gbps
. Essa largura de banda de saída permite que o cliente atinja aproximadamente 16 Gbps
de largura de banda de leitura para cargas de trabalho compatíveis com cache. Para mais contexto, consulte Largura de banda de rede.
Opções de ativação do cliente Linux
Recomendamos o uso das seguintes opções de montagem NFS, especialmente a montagem hard
,
async
e as opções rsize
e wsize
, para alcançar o melhor desempenho em
instâncias de VM do cliente Linux. Para mais informações sobre as opções de montagem do NFS, consulte
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=524288 |
O cliente NFS pode receber no máximo 524.288 bytes do servidor NFS por solicitação READ . Observação: para instâncias de nível básico, defina o valor rsize como 1048576 . |
wsize=1048576 |
O cliente NFS pode enviar no máximo 1.048.576 bytes (1 MiB) para o 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. |
Desempenho de VM de cliente único e várias VMs
Os níveis de serviço escalonáveis do Filestore são otimizados para desempenho em várias VMs de cliente, não em uma única VM de cliente.
Para instâncias zonais, regionais e corporativas, pelo menos quatro VMs de cliente são necessárias para aproveitar o desempenho total. Isso garante que todas as VMs no cluster do Filestore sejam totalmente utilizadas.
Para mais contexto, o cluster escalonável mais pequeno do Filestore tem quatro
VMs. Cada VM cliente se comunica com apenas uma VM do cluster do Filestore,
independentemente do número de conexões NFS por cliente especificado usando a
opção de montagem nconnect
. Se você estiver usando uma única VM de cliente, as operações de leitura e gravação serão
realizadas em uma única VM de cluster do Filestore.
Melhorar a performance dos recursos Google Cloud
As operações em vários recursos Google Cloud , como copiar dados do Cloud Storage para uma instância do Filestore usando a CLI gcloud, podem ser lentas. Para ajudar a reduzir os problemas de desempenho, tente o seguinte:
Verifique se o bucket do Cloud Storage, a VM cliente e a instância do Filestore estão na mesma região.
As regiões duplas oferecem uma opção de desempenho máximo para dados armazenados no Cloud Storage. Se você usar essa opção, verifique se os outros recursos estão em uma das regiões únicas contidas na região dupla. Por exemplo, se os dados do Cloud Storage estiverem em
us-central1,us-west1
, verifique se a VM do cliente e a instância do Filestore estão emus-central1
.Como referência, verifique o desempenho de uma VM anexada a um PD e compare com o desempenho de uma instância do Filestore.
- Se a VM anexada ao PD tiver um desempenho semelhante ou mais lento em comparação com a instância do Filestore, isso pode indicar um gargalo de desempenho não relacionado ao Filestore. Para melhorar o desempenho de referência dos seus recursos que não são do Filestore, ajuste as propriedades da gcloud CLI associadas a uploads compostos paralelos. Para mais informações, consulte Como as ferramentas e as APIs usam uploads compostos paralelos.
Se a performance da instância do Filestore for consideravelmente mais lenta do que a VM anexada ao
PD, tente distribuir a operação em várias VMs.Isso ajuda a melhorar o desempenho das operações de leitura do Cloud Storage.
Para instâncias zonais, regionais e corporativas, pelo menos quatro VMs de cliente são necessárias para aproveitar a performance total. Isso garante que todas as VMs no cluster do Filestore sejam totalmente utilizadas. Para mais informações, consulte Desempenho de VM de cliente único e várias VMs de cliente.
Testar a performance
Se você estiver usando o Linux, use a ferramenta fio para comparar as capacidades de leitura e gravação e a IOPS para instâncias do nível básico. Esse método de comparativo de mercado de desempenho não é recomendado para instâncias zonais, regionais e corporativas.
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.
O exemplo a seguir compara a capacidade máxima de gravação:
fio --ioengine=libaio --filesize=32G --ramp_time=2s \ --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \ --group_reporting --directory=/mnt/nfs --buffer_compress_percentage=50 \ --name=write --blocksize=1m --iodepth=64 --readwrite=write
O exemplo a seguir compara a IOPS máxima de gravação:
fio --ioengine=libaio --filesize=32G --ramp_time=2s \ --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \ --group_reporting --directory=/mnt/nfs --buffer_compress_percentage=50 \ --name=randwrite --blocksize=4k --iodepth=256 --readwrite=randwrite
O exemplo a seguir compara as capacidades máximas de leitura:
fio --ioengine=libaio --filesize=32G --ramp_time=2s \ --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \ --group_reporting --directory=/mnt/nfs --buffer_compress_percentage=50 \ --name=read --blocksize=1m --iodepth=64 --readwrite=read
O exemplo a seguir compara a IOPS máxima de leitura:
fio --ioengine=libaio --filesize=32G --ramp_time=2s \ --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \ --group_reporting --directory=/mnt/nfs --buffer_compress_percentage=50 \ --name=randread --blocksize=4k --iodepth=256 --readwrite=randread