Otimizar o desempenho

Nesta página, fornecemos detalhes sobre como otimizar a performance do Google Cloud NetApp Volumes.

Antes de começar

Antes de fazer mudanças nos seus volumes para otimizar a performance, confira as considerações sobre performance.

Ajustar as configurações de volume

É possível otimizar a performance ajustando as seguintes configurações de volume:

  • Aumentar a capacidade do volume: é possível aumentar a capacidade do volume do nível de serviço Premium, Extreme ou Standard para melhorar a taxa de transferência máxima de volume possível. Para volumes do nível de serviço Flex, aumente a capacidade dos pools de armazenamento.

  • Faça upgrade do nível de serviço: é possível fazer upgrade dos volumes do nível de serviço Premium para o nível de serviço Extreme e melhorar a capacidade de transferência. Recomendamos que você atribua o volume a um pool de armazenamento diferente com um nível de serviço diferente.

  • Use pools de QoS manuais para atribuir maior capacidade de processamento: é possível diminuir a capacidade de processamento atribuída de volumes maiores com requisitos de baixa capacidade de processamento e aumentar a capacidade de processamento de volumes menores que precisam de maior desempenho até a capacidade de processamento disponível do pool.

Aumentar a capacidade do volume e fazer upgrade dos níveis de serviço não interrompe as cargas de trabalho de E/S em processo no volume e não afeta o acesso a ele de forma alguma.

Ajustar o cliente

Para melhorar a performance, ajuste as seguintes configurações no cliente:

  • Coloque os clientes no mesmo local: os resultados de latência são diretamente afetados pelas capacidades e localização do cliente. Para ter os melhores resultados, coloque o cliente na mesma região do volume ou o mais perto possível. Teste o impacto zonal testando a latência de um cliente em cada zona e use a zona com a menor latência.

  • Configurar a largura de banda da rede do Compute Engine: os recursos de rede das máquinas virtuais do Compute Engine dependem do tipo de instância usado. Normalmente, instâncias maiores podem gerar mais capacidade de processamento da rede. Recomendamos que você selecione uma máquina virtual cliente com uma capacidade de largura de banda de rede adequada, selecione a interface de rede NIC virtual do Google (gVNIC) e ative o desempenho Tier_1. Para mais informações, consulte a documentação do Compute Engine sobre largura de banda de rede.

  • Abra várias sessões TCP: se o aplicativo exigir alta taxa de transferência, você poderá saturar a única sessão do protocolo de controle de transmissão (TCP) que sustenta uma sessão normal do NFS e do SMB. Nesses casos, aumente o número de sessões TCP usadas pela sua conexão NFS e SMB.

    Use uma das seguintes guias para ajustar seu cliente com base no tipo dele:

    Linux

    Tradicionalmente, um cliente NFS usa uma única sessão TCP para todos os sistemas de arquivos montados em NFS que compartilham um endpoint de armazenamento. Usar a opção de montagem nconnect permite aumentar o número de sessões TCP compatíveis até um máximo de 16.

    Recomendamos as seguintes práticas recomendadas para ajustar o tipo de cliente Linux e aproveitar ao máximo o nconnect:

    • Aumente o número de sessões TCP com nconnect: cada sessão TCP adicional adiciona uma fila para 128 solicitações pendentes, melhorando a simultaneidade potencial.

    • Definir o parâmetro sunrpc.max_tcp_slot_table_entries: sunrpc.max_tcp_slot_table_entries é um parâmetro de ajuste no nível da conexão que pode ser modificado para controlar o desempenho. Recomendamos definir sunrpc.max_tpc_slot_table_enteries como 128 solicitações ou por conexão e não ultrapassar 10.000 slots para todos os clientes NFS em um único projeto que se conecta aos NetApp Volumes. Para definir o parâmetro sunrpc.max_tcp_slot_table_entries, adicione-o ao arquivo /etc/sysctl.conf e recarregue o arquivo de parâmetros usando o comando sysctl -p.

    • Ajuste o valor máximo compatível por sessão para 180: ao contrário do NFSv3, os clientes NFSv4.1 definem a relação entre o cliente e o servidor em sessões. Embora o NetApp Volumes ofereça suporte a até 128 solicitações pendentes por conexão usando o NFSv3, o NFSv4.1 é limitado a 180 solicitações pendentes por sessão. Os clientes Linux NFSv4.1 usam 64 max_session_slots por sessão como padrão, mas é possível ajustar esse valor conforme necessário. Recomendamos mudar o valor máximo aceito por sessão para 180.

      Para ajustar max_session_slots, crie um arquivo de configuração em /etc/modprobe.d. Verifique se não há aspas (" ") em linha. Caso contrário, a opção não vai entrar em vigor.

      $ echo "options nfs max_session_slots=180" > /etc/modprobe/d/nfsclient/conf
      $ reboot
      
      Use the systool -v -m nfs command to see the current maximum in use
      by the client. For the command to work, at least one NFSv4.1 mount
      must be in place.
      
      $ systool -v -v nfs
      {
      Module = "nfs"
      
      Parameters:
      
      Max_session_slots = "63" <-
      
      }
      

    O gráfico de comparação do NFS nconnect a seguir demonstra o impacto que o uso da configuração nconnect pode ter em uma carga de trabalho do NFS. Essas informações foram capturadas usando o Fio com as seguintes configurações:

    • Carga de trabalho de leitura 100%

    • Tamanho de bloco de 8 KiB em um único volume

    • n2-standard-32 máquina virtual usando o SO Red Hat 9

    • Conjunto de trabalho de 6 TiB

    Usar um valor nconnect de 16 resultou em uma performance cinco vezes maior do que quando não estava ativado.

    Comparação de nconnect do NFS usando uma única máquina virtual Red Hat 9 com um tamanho de bloco de 8 KiB.

    Windows

    Para clientes baseados no Windows, o cliente pode usar o SMB Multichannel com o Receive Side Scaling (RSS) para abrir várias conexões TCP. Para conseguir essa configuração, a máquina virtual precisa ter um adaptador de rede alocado que seja compatível com RSS. Recomendamos definir o RSS como quatro ou oito valores. No entanto, qualquer valor acima de um deve aumentar a capacidade de transmissão.

    O gráfico a seguir mostra a diferença que o uso da configuração RSS pode ter em uma carga de trabalho SMB. Essas informações foram capturadas usando o Fio com as seguintes configurações:

    • Carga de trabalho de leitura 100%

    • Tamanho de bloco de 8 KiB em um único volume

    • Máquina virtual n2-standard-32 única executando um SO Windows 2022

    • Conjunto de trabalho de 6 TiB

    Oito jobs foram executados com apenas a opção RSS do cliente SMB mudando entre as execuções de teste. Usar valores de RSS de 4, 8 e 16 aumentou o desempenho em duas vezes em comparação com o uso de um valor de 1. Cada instância do RSS foi executada nove vezes com um parâmetro numjobs de 8. O parâmetro iodepth foi aumentado em cinco a cada execução até que a taxa de transferência máxima fosse atingida.

    Comparação de RSS do SMB de uma única VM do Windows 2022 com um tamanho de bloco de 8 KiB

QoS manual

Com a qualidade de serviço (QoS) manual no NetApp Volumes, é possível ajustar o desempenho do volume para atender aos requisitos da carga de trabalho e controlar os custos de armazenamento.

O QoS manual oferece os seguintes benefícios:

  • Otimização de custos: dimensione a performance de volume na capacidade do pool de armazenamento para otimizar os custos da nuvem.

  • Ajuste instantâneo da capacidade de processamento: ajuste a capacidade de processamento de volume sem inatividade.

  • Redução de custos de recuperação de desastres: QoS mais baixo para volumes replicados para reduzir os custos de recuperação de desastres para pools de destino.

  • Melhor desempenho para clones ou caches: aumente a performance para volumes de clone ou cache com tamanhos alocados pequenos.

  • Gerenciamento flexível de carga de trabalho: use pools de armazenamento maiores como contêineres para várias cargas de trabalho, ajustando a capacidade de cada volume conforme necessário.

Considerações

  • É possível gerenciar a qualidade de serviço manual usando a Google Cloud CLI, a API NetApp Volumes ou o Terraform. O console Google Cloud não é compatível.

  • A QoS manual é compatível com os níveis de serviço Standard, Premium e Extreme, mas não está disponível para o nível Flex.

Configurar limites manuais de QoS

Para volumes em um pool de armazenamento de QoS manual, é possível definir a capacidade e a capacidade de processamento de forma independente. A capacidade de processamento geral de todos os volumes em um pool de QoS manual é limitada pela capacidade de processamento total do pool. A capacidade de processamento do pool é determinada pela capacidade alocada e pelo nível de serviço. Por exemplo, um pool Premium de 40 TiB pode atingir uma capacidade máxima de 2.560 MiBps a 64 MiBps por TiB, enquanto um pool Extreme de 200 TiB pode oferecer suporte a volumes com uma capacidade combinada de 25.600 MiBps.

Depois que o pool de QoS manual é configurado, é possível definir o limite de capacidade necessário para cada volume dentro dele. O limite máximo de capacidade de processamento para um único volume é de 4, 5 GiBps ou 30 GiBps para volumes de grande capacidade.

Os comandos ou APIs de pool e volume mostram os valores de capacidade de processamento disponíveis e atribuídos para o pool, ajudando você a gerenciar a capacidade total. Para criar um pool de QoS manual e definir a taxa de transferência de volume, consulte Criar um pool de armazenamento e Criar um volume.

Criar um pool de armazenamento

gcloud

Crie um pool de armazenamento usando a QoS manual:

    gcloud netapp storage-pools create POOL_NAME \
       --project=PROJECT_ID \
       --location=LOCATION \
       --capacity=CAPACITY \
       --service-level=SERVICE_LEVEL \
       --qos-type=QOS_TYPE \
       --network=name=NETWORK_NAME

Substitua as seguintes informações:

  • POOL_NAME: o nome do pool que você quer criar. O nome do pool precisa ser exclusivo por local.

  • PROJECT_ID: o nome do projeto em que você quer criar o pool de armazenamento.

  • LOCATION: o local do pool que você quer criar.

  • CAPACITY: a capacidade do pool em GiB.

  • SERVICE_LEVEL: o nível de serviço do pool de armazenamento: Standard, Premium ou Extreme.

  • QOS_TYPE: o tipo de QoS do seu pool de armazenamento: automático ou manual.

  • NETWORK_NAME: o nome da VPC.

Editar um pool de armazenamento

gcloud

Edite um pool de armazenamento de QoS automático para usar o QoS manual:

    gcloud netapp storage-pools update POOL_NAME \
       --project=PROJECT_ID \
       --location=LOCATION \
       --qos-type=QOS_TYPE

Substitua as seguintes informações:

  • POOL_NAME: o nome do pool que você quer atualizar.

  • PROJECT_ID: o nome do projeto.

  • LOCATION: o local do pool.

  • QOS_TYPE: o tipo de QoS atualizado para seu pool de armazenamento. Somente a configuração manual é aceita.

Criar um volume

gcloud

Crie um volume com o limite de capacidade de processamento de QoS manual especificado usando o seguinte comando:

gcloud netapp volumes create VOLUME_NAME \
  --project=PROJECT_ID \
  --location=LOCATION \
  --storage-pool=STORAGE_POOL \
  --capacity=CAPACITY \
  --protocols=PROTOCOLS \
  --share-name=SHARE_NAME \
  --throughput-mibps=THROUGHPUT_MIBPS

Substitua as seguintes informações:

  • VOLUME_NAME: o nome do volume. O nome precisa ser exclusivo por local.

  • PROJECT_ID: o nome do projeto em que o volume será criado.

  • LOCATION: o local do volume.

  • STORAGE_POOL: o pool de armazenamento em que o volume será criado.

  • CAPACITY: a capacidade do volume. Ele define a capacidade que os clientes do NAS veem.

  • PROTOCOLS: escolha os protocolos NAS com que o volume é exportado. As opções válidas são NFSv3, NFSv4, SMB e as seguintes combinações:

    • nfsv3,nfsv4
    • nfsv3,smb
    • nfsv4,smb

    Dependendo do tipo de protocolo escolhido, recomendamos que você adicione os parâmetros específicos do protocolo, como export-policy ou smb-settings.

  • SHARE_NAME: o caminho de exportação do NFS ou o nome de compartilhamento SMB do volume.

  • THROUGHPUT_MIBPS: o limite de capacidade de processamento do volume em MiBps.

Para mais informações sobre outras flags opcionais, consulte a documentação do SDK Google Cloud sobre a criação de volumes.

A seguir

Leia sobre pools de armazenamento.