Esta página fornece detalhes sobre como pode otimizar o desempenho do Google Cloud NetApp Volumes.
Antes de começar
Antes de fazer alterações aos seus volumes para otimizar o desempenho, reveja as considerações de desempenho.
Ajuste as definições de volume
Pode otimizar o desempenho ajustando as seguintes definições de volume:
Aumentar a capacidade do volume: pode aumentar a capacidade do volume do nível de serviço Premium, Extreme ou Standard para melhorar o débito máximo alcançável do volume. Para volumes do nível de serviço Flex, aumente a capacidade dos conjuntos de armazenamento.
Atualize o seu nível de serviço: pode atualizar os volumes do seu nível de serviço Premium para o nível de serviço Extreme para melhorar o débito. Recomendamos que atribua o volume a um conjunto de armazenamento diferente com um nível de serviço diferente.
Use pools de QoS manuais para atribuir um débito maior: pode diminuir o débito atribuído de volumes maiores com requisitos de débito baixos e aumentar o débito de volumes menores que precisam de um desempenho mais elevado até ao débito do pool disponível.
O aumento da capacidade de volume e a atualização dos níveis de serviço não são disruptivos para as cargas de trabalho de E/S em processamento no volume e não afetam o acesso ao volume de forma alguma.
Ajuste o cliente
Pode melhorar o desempenho ajustando as seguintes definições no cliente:
Localizar clientes em conjunto: os resultados da latência são diretamente afetados pelas capacidades e pela localização do cliente. Para ter os melhores resultados, coloque o cliente na mesma região que o volume ou o mais próximo possível. Teste o impacto zonal testando a latência de um cliente em cada zona e use a zona com a latência mais baixa.
Configure a largura de banda da rede do Compute Engine: as capacidades de rede das máquinas virtuais do Compute Engine dependem do tipo de instância usado. Normalmente, as instâncias maiores podem gerar um débito de rede superior. Recomendamos que selecione uma máquina virtual cliente com uma capacidade de largura de banda de rede adequada, selecione a interface de rede da NIC virtual da Google (gVNIC) e ative o desempenho
Tier_1
. Para mais informações, consulte a documentação do Compute Engine sobre a largura de banda da rede.Abrir várias sessões TCP: se a sua aplicação exigir um débito elevado, pode eventualmente saturar a sessão do protocolo de controlo de transmissão (TCP) única que está na base de uma sessão normal de NFS e SMB. Para estes casos, aumente o número de sessões TCP que a sua ligação NFS e SMB usa.
Use um dos seguintes separadores para ajustar o seu cliente com base no tipo de cliente:
Linux
Tradicionalmente, um cliente NFS usa uma única sessão TCP para todos os sistemas de ficheiros montados em NFS que partilham um ponto final de armazenamento. A utilização da opção de montagem
nconnect
permite aumentar o número de sessões TCP suportadas até um máximo de 16.Recomendamos as seguintes práticas recomendadas para ajustar o tipo de cliente Linux de modo a tirar total partido do
nconnect
:Aumente o número de sessões TCP com
nconnect
: cada sessão TCP adicional adiciona uma fila para 128 pedidos pendentes, o que melhora a simultaneidade potencial.Defina o parâmetro
sunrpc.max_tcp_slot_table_entries
:sunrpc.max_tcp_slot_table_entries
é um parâmetro de ajuste ao nível da ligação que pode modificar para controlar o desempenho. Recomendamos que definasunrpc.max_tpc_slot_table_enteries
para 128 pedidos ou por ligação e não exceda 10 000 espaços para todos os clientes NFS num único projeto que se ligue a volumes NetApp. Para definir o parâmetrosunrpc.max_tcp_slot_table_entries
, adicione-o ao ficheiro/etc/sysctl.conf
e recarregue o ficheiro de parâmetros através do comandosysctl -p
.Ajuste o valor máximo suportado 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 os volumes NetApp suportem até 128 pedidos pendentes por ligação através do NFSv3, o NFSv4.1 está limitado a 180 pedidos pendentes por sessão. Os clientes Linux NFSv4.1 têm como predefinição
64 max_session_slots
por sessão, mas pode ajustar este valor conforme necessário. Recomendamos que altere o valor máximo suportado por sessão para 180.Para otimizar
max_session_slots
, crie um ficheiro de configuração em/etc/modprobe.d
. Certifique-se de que não aparecem aspas (" ") no texto. Caso contrário, a opção não é aplicada.$ 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 de NFS
nconnect
seguinte demonstra o impacto que a configuração nconnect pode ter numa carga de trabalho de NFS. Estas informações foram capturadas através do Fio com as seguintes definições:100% da carga de trabalho de leitura
Tamanho do bloco de 8 KiB em relação a um único volume
n2-standard-32
máquina virtual com o SO Red Hat 9Conjunto de trabalho de 6 TiB
A utilização de um valor de
nconnect
de 16 resultou num desempenho cinco vezes superior ao quando não estava ativado.Windows
Para clientes baseados no Windows, o cliente pode usar o SMB Multichannel com o Receive Side Scaling (RSS) para abrir várias ligações TCP. Para alcançar esta configuração, a sua máquina virtual tem de ter um adaptador de rede atribuído que suporte RSS. Recomendamos que defina o RSS para quatro ou oito valores. No entanto, qualquer valor superior a um deve aumentar a taxa de transferência.
O gráfico seguinte apresenta a diferença que a configuração RSS pode ter numa carga de trabalho SMB. Estas informações foram capturadas através do Fio com as seguintes definições:
100% da carga de trabalho de leitura
Tamanho do bloco de 8 KiB em relação a um único volume
Máquina virtual
n2-standard-32
única a executar um SO Windows 2022Conjunto de trabalho de 6 TiB
Foram executados oito trabalhos com apenas a opção RSS do cliente SMB a mudar entre as execuções de teste. A utilização de valores RSS de 4, 8 e 16 aumentou o desempenho duas vezes em comparação com a utilização de um valor de 1. Cada instância de RSS foi executada nove vezes com um parâmetro
numjobs
de 8. O parâmetroiodepth
foi aumentado em cinco em cada execução até atingir o débito máximo.
QoS manual
A qualidade de serviço (QoS) manual nos volumes NetApp permite-lhe ajustar o desempenho dos volumes para cumprir os requisitos da carga de trabalho e controlar os custos de armazenamento.
A QoS manual oferece as seguintes vantagens:
Otimização de custos: aumente o desempenho do volume dentro da capacidade do seu conjunto de armazenamento para otimizar os custos da nuvem.
Ajuste instantâneo do débito: ajuste o débito do volume sem tempo de inatividade.
Redução do custo de recuperação de desastres: diminua a QoS para volumes replicados de modo a reduzir os custos de recuperação de desastres para pools de destino.
Desempenho melhorado para clones ou caches: aumente o desempenho dos volumes de clones ou de cache com tamanhos alocados pequenos.
Gestão flexível da carga de trabalho: use conjuntos de armazenamento maiores como contentores para várias cargas de trabalho, ajustando o débito de cada volume conforme necessário.
Considerações
Pode gerir a QoS manual através da CLI do Google Cloud, da API NetApp Volumes ou do Terraform. A consola Google Cloud não é compatível.
A QoS manual é suportada para os níveis de serviço Standard, Premium e Extreme e não está disponível para o nível de serviço Flex.
Configure limites de QoS manuais
Para volumes num conjunto de armazenamento de QoS manual, pode definir a taxa de transferência e a capacidade de forma independente. A taxa de transferência geral de todos os volumes num conjunto de QoS manual é limitada pela taxa de transferência total do conjunto. O débito do conjunto é determinado pela capacidade atribuída e pelo nível de serviço. Por exemplo, um conjunto Premium de 40 TiB pode atingir um débito máximo de 2560 MiBps a 64 MiBps por TiB, enquanto um conjunto Extreme de 200 TiB pode suportar volumes com um débito combinado de 25 600 MiBps.
Depois de configurar o conjunto de QoS manual, pode definir o limite de débito necessário para cada volume no mesmo. O limite máximo de débito para um único volume é de 4, 5 GiBps ou 30 GiBps para volumes de grande capacidade.
Os comandos ou as APIs de capacidade e volume apresentam valores de débito disponíveis e atribuídos para o conjunto, o que ajuda a gerir o débito total. Para criar um grupo de QoS manual e definir o débito de volume, consulte Criar um grupo de armazenamento e Criar um volume.
Crie um conjunto de armazenamento
gcloud
Crie um conjunto de armazenamento com 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 conjunto que quer criar. O nome do conjunto tem de ser exclusivo por localização.PROJECT_ID
: o nome do projeto no qual quer criar o conjunto de armazenamento.LOCATION
: a localização do conjunto que quer criar.CAPACITY
: a capacidade do conjunto em GiB.SERVICE_LEVEL
: o nível de serviço do seu conjunto de armazenamento: Standard, Premium ou Extreme.QOS_TYPE
: o tipo de QoS do seu conjunto de armazenamento: automático ou manual.NETWORK_NAME
: o nome da VPC.
Edite um conjunto de armazenamento
gcloud
Edite um conjunto de armazenamento de QoS automático existente para usar a 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 conjunto que quer atualizar.PROJECT_ID
: o nome do projeto.LOCATION
: a localização da piscina.QOS_TYPE
: o tipo de QoS atualizado para o seu conjunto de armazenamento. Apenas é suportada a configuração manual.
Crie um volume
gcloud
Crie um volume com um limite de débito de QoS manual especificado através do 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. Este nome tem de ser exclusivo por localização.PROJECT_ID
: o nome do projeto no qual criar o volume.LOCATION
: a localização do volume.STORAGE_POOL
: o conjunto de armazenamento no qual criar o volume.CAPACITY
: a capacidade do volume. Define a capacidade que os clientes NAS veem.PROTOCOLS
: escolha os protocolos NAS com os quais o volume é exportado. As opções válidas são NFSv3, NFSv4, SMB e as seguintes combinações:nfsv3,nfsv4
nfsv3,smb
nfsv4,smb
Consoante o tipo de protocolo que escolher, recomendamos que adicione os parâmetros específicos do protocolo, como
export-policy
ousmb-settings
.SHARE_NAME
: o caminho de exportação NFS ou o nome da partilha SMB do volume.THROUGHPUT_MIBPS
: o limite de débito do volume em MiBps.
Para mais informações sobre flags opcionais adicionais, consulte a documentação do Google Cloud SDK sobre a criação de volumes.
O que se segue?
Leia sobre os conjuntos de armazenamento.