Largura de banda da rede


Google Cloud leva em conta a largura de banda por instância de computação, não por interface de rede virtual (vNIC) ou endereço IP. O tipo de máquina de uma instância define sua taxa de saída máxima possível; entretanto, você só pode atingir a taxa de saída máxima possível em situações específicas.

Esta página descreve os limites de largura de banda da rede, que são úteis ao planejar suas implantações. Ele categoriza a largura de banda usando duas dimensões:

  • Saída ou entrada : Conforme usado nesta página, saída e entrada são sempre da perspectiva de um Google Cloud exemplo:
    • Pacotes enviados de um Google Cloud instância compõe seu tráfego de saída (saída).
    • Pacotes enviados para um Google Cloud instância compõe seu tráfego de entrada (entrada).
  • Como o pacote é roteado : um pacote pode ser roteado de uma instância de envio ou para uma instância de recebimento usando rotas cujos próximos saltos estejam dentro de uma rede VPC ou rotas fora de uma rede VPC.

Nem interfaces de rede virtuais (vNICs) adicionais nem endereços IP adicionais por vNIC aumentam a largura de banda de entrada ou saída para uma instância de computação. Por exemplo, uma VM C3 com 22 vCPUs está limitada a uma largura de banda de saída total de 23 Gbps. Se você configurar a VM C3 com dois vNICs, a VM ainda estará limitada a 23 Gbps de largura de banda de saída total, e não a 23 Gbps de largura de banda por vNIC.

Para obter a maior largura de banda de entrada e saída possível, configure o desempenho de rede por VM Tier_1 para sua instância de computação.

Todas as informações nesta página são aplicáveis ​​às instâncias de computação do Compute Engine, bem como aos produtos que dependem das instâncias do Compute Engine. Por exemplo, um nó do Google Kubernetes Engine é uma instância do Compute Engine.

Resumo da largura de banda

A tabela a seguir ilustra a largura de banda máxima possível com base no fato de um pacote ser enviado (saída) ou recebido por (entrada) uma instância de computação e o método de roteamento de pacotes.

Limites de largura de banda de saída

Roteamento dentro
uma rede VPC
  • Definido principalmente por uma largura de banda de saída máxima por instância com base no tipo de máquina da instância de envio e se a rede Tier_1 está habilitada.

    • VMs N2, N2D, C2, C2D e C4A com rede Tier_1 suportam limites de largura de banda de saída de até 100 Gbps.
    • As VMs H3 suportam limites de largura de banda de saída de VM para VM de até 200 Gbps.
    • As instâncias X4, A2 e G2 suportam limites de largura de banda de saída de até 100 Gbps.
    • As instâncias A4 e A3 suportam limites de largura de banda de saída de até 3.600 Gbps.
    • As instâncias M4, C4, C3, C3D e Z3 suportam limites de largura de banda de saída de até 200 Gbps com rede Tier_1.
  • Para outros fatores, definições e cenários, consulte Saída para destinos roteáveis ​​em uma rede VPC .
Roteamento externo
uma rede VPC
  • Definido principalmente por uma largura de banda de saída máxima por instância com base no tipo de máquina da instância de envio e se a rede Tier_1 está habilitada. Exceto para VMs H3, a saída máxima possível de uma instância de envio para um destino fora de sua rede VPC não pode exceder o seguinte:

    • Total de 7 Gbps quando a rede Tier_1 não está habilitada
    • Total de 25 Gbps quando a rede Tier_1 está habilitada
    • 3 Gbps por fluxo
  • Para outros fatores, definições e advertências, consulte Saída para destinos fora de uma rede VPC .

Limites de largura de banda de entrada

Roteamento dentro
uma rede VPC
  • Geralmente, as taxas de entrada são semelhantes às taxas de saída de um tipo de máquina.
  • Para obter a maior largura de banda de entrada possível, habilite a rede Tier_1 .
  • O tamanho da sua instância de computação, a capacidade da NIC do servidor, o tráfego que chega a outras VMs convidadas em execução no mesmo hardware host, a configuração da rede do sistema operacional convidado e o número de leituras de disco realizadas pela sua instância podem afetar a taxa de entrada.
  • Google Cloud não impõe limitações adicionais às taxas de entrada em uma rede VPC.
  • Para outros fatores, definições e cenários, consulte Entrada para destinos roteáveis ​​em uma rede VPC .
Roteamento externo
uma rede VPC
  • Google Cloud protege cada instância de computação limitando o tráfego de entrada roteado fora de uma rede VPC. O limite é a primeira das seguintes taxas encontradas:

    • 1.800.000 pps (pacotes por segundo)
    • 30 Gbps
  • Para uma série de máquinas que suporta múltiplas NICs físicas, como A4 e A3, o limite é a primeira das seguintes taxas encontradas:

    • 1.800.000 pps (pacotes por segundo) por NIC física
    • 30 Gbps por NIC física
  • Para outros fatores, definições e cenários, consulte Entrada para destinos fora de uma rede VPC .

Largura de banda de saída

Google Cloud limita a largura de banda de saída (saída) usando taxas máximas de saída por instância. Essas taxas baseiam-se no tipo de máquina da instância de computação que está enviando o pacote e se o destino do pacote é acessível usando rotas dentro de uma rede VPC ou rotas fora de uma rede VPC. A largura de banda de saída inclui pacotes emitidos por todas as NICs da instância e dados transferidos para todos os volumes de hiperdiscos e discos permanentes conectados à instância.

Largura de banda de saída máxima por instância

A largura de banda de saída máxima por instância geralmente é de 2 Gbps por vCPU, mas há algumas diferenças e exceções, dependendo da série da máquina. A tabela a seguir mostra o intervalo de limites máximos de largura de banda de saída para tráfego roteado em uma rede VPC somente para o nível de rede padrão , não por desempenho de rede do nível 1 da VM .

Série de máquinas Limite máximo de saída mais baixo por instância para padrão Limite máximo de saída mais alto por instância para padrão
C4 e C4A 10Gbps 100 Gbps
C3 23Gb/s 100 Gbps
C3D 20Gbps 100 Gbps
C2 e C2D 10Gbps 32Gbps
E2 1Gb/s 16Gbps
H3 N / D 200 Gbps
M4 32Gbps 100 Gbps
M3 e M1 32Gbps 32Gbps
M2 32Gbps 32 Gbps na plataforma de CPU Intel Cascade Lake
16 Gbps em outras plataformas de CPU
N4 10Gbps 50Gbps
N2 e N2D 10Gbps 32Gbps
N1 (excluindo VMs com 1 vCPU) 10Gbps 32 Gbps na plataforma de CPU Intel Skylake
16 Gbps em plataformas de CPU anteriores ao Intel Skylake
Tipos de máquina N1 com 1 vCPU, f1-micro e g1-small 2Gb/s 2Gb/s
DM2 10Gbps 32Gbps
X4 N / D 100 Gbps
Z3 23Gb/s 100 Gbps

Você pode encontrar a largura de banda de saída máxima por instância para cada tipo de máquina listado na página específica da família de máquinas:

A largura de banda de saída máxima por instância não é uma garantia. A largura de banda de saída real pode ser reduzida de acordo com fatores como a seguinte lista não exaustiva:

  • Usando VirtIO em vez de gVNIC com instâncias de computação que suportam ambos
  • Tamanho do pacote
  • Sobrecarga de protocolo
  • O número de fluxos
  • Configurações do driver Ethernet do sistema operacional convidado da instância de computação, como descarregamento de soma de verificação e descarregamento de segmentação TCP (TSO)
  • Congestionamento de rede
  • Em uma situação em que as E/Ss do disco permanente competem com outro tráfego de saída da rede, 60% da largura de banda máxima da rede é destinada às gravações do disco permanente, deixando 40% para outro tráfego de saída da rede. Consulte Fatores que afetam o desempenho do disco para obter mais detalhes.

Para obter a maior largura de banda de saída máxima possível por instância:

  • Habilite o desempenho de rede por VM Tier_1 com tipos de máquinas maiores.
  • Use a maior unidade máxima de transmissão (MTU) de rede VPC compatível com sua topologia de rede. MTUs maiores podem reduzir a sobrecarga do cabeçalho do pacote e aumentar a taxa de transferência de dados de carga útil.
  • Use a versão mais recente do driver gVNIC.
  • Use séries de máquinas de terceira geração ou posteriores que usam Titanium para descarregar o processamento de rede da CPU do host.

Saída para destinos roteáveis ​​em uma rede VPC

Do ponto de vista de uma instância emissora e para endereços IP de destino acessíveis por meio de rotas dentro de uma rede VPC ,Google Cloud limita o tráfego de saída usando estas regras:

Os destinos roteáveis ​​em uma rede VPC incluem todos os destinos a seguir, cada um acessível da perspectiva da instância remetente por uma rota cujo próximo salto não seja o gateway de Internet padrão:

  • Endereços IPv4 internos regionais em intervalos de endereços IPv4 primários de sub-rede e IPv4 secundários de sub-rede , incluindo intervalos de endereços IPv4 privados e intervalos de endereços IPv4 públicos usados ​​de forma privada, usados ​​por estes recursos de destino:
    • O endereço IPv4 interno primário da interface de rede de uma instância receptora (vNIC). (Quando uma instância de envio se conecta ao endereço IPv4 externo vNIC de outra instância, os pacotes são roteados usando um gateway de Internet padrão do próximo salto, portanto, a saída para destinos fora de uma rede VPC se aplica.)
    • Um endereço IPv4 interno em um intervalo de IP de alias do vNIC de uma instância receptora.
    • Um endereço IPv4 interno de uma regra de encaminhamento interno para encaminhamento de protocolo ou para um Network Load Balancer de passagem interna.
  • Endereços IPv4 internos globais para estes recursos de destino:
  • Intervalos de endereços de sub-rede IPv6 internos usados ​​por estes recursos de destino:
    • Um endereço IPv6 do intervalo de endereços IPv6 /96 atribuído a uma vNIC de instância de recebimento de pilha dupla ou somente IPv6 ( Preview ).
    • Um endereço IPv6 do intervalo de endereços IPv6 /96 de uma regra de encaminhamento interno para encaminhamento de protocolo ou para um Network Load Balancer de passagem interna.
  • Intervalos de endereços de sub-rede IPv6 externos usados ​​por esses recursos de destino quando os pacotes são roteados usando rotas de sub-rede ou rotas de sub-rede de peering dentro da rede VPC ou por rotas personalizadas dentro da rede VPC que não usam o próximo salto do gateway de Internet padrão :
    • Um endereço IPv6 do intervalo de endereços /96 IPv6 atribuído a uma vNIC de instância de recebimento de pilha dupla ou somente IPv6 ( Preview ).
    • Um endereço IPv6 do intervalo de endereços IPv6 /96 de uma regra de encaminhamento externo para encaminhamento de protocolo ou para um Network Load Balancer de passagem externa.
  • Outros destinos acessíveis usando as seguintes rotas de rede VPC:

A lista a seguir classifica o tráfego de instâncias de envio para destinos internos, da maior largura de banda possível para a menor:

Saída para destinos fora de uma rede VPC

Da perspectiva de uma instância de envio e para endereços IP de destino fora de uma rede VPC , Google Cloud limita o tráfego de saída a qualquer uma das seguintes taxas alcançada primeiro:

  • Largura de banda de saída por instância: a largura de banda máxima para todas as conexões de uma instância de computação para destinos fora de uma rede VPC é o menor valor entre a largura de banda de saída máxima por instância e uma destas taxas:

    • 25 Gbps, se a rede Tier_1 estiver habilitada
    • 7 Gbps, se a rede Tier_1 não estiver habilitada
    • 1 Gbps para instâncias H3
    • 7 Gbps por NIC física para séries de máquinas que suportam múltiplas NICs físicas, como A4 e A3.

    Por exemplo, mesmo que uma instância c3-standard-44 tenha uma largura de banda de saída máxima por VM de 32 Gbps, a largura de banda de saída por VM de uma VM c3-standard-44 para destinos externos é de 25 Gbps ou 7 Gbps, dependendo se a rede Tier_1 está habilitada.

  • Taxa de saída máxima por fluxo: a largura de banda máxima para cada conexão exclusiva de cinco tuplas, de uma instância de computação a um destino fora de uma rede VPC, é de 3 Gbps, exceto em H3, onde é de 1 Gbps.

  • Largura de banda de saída de Internet por projeto: a largura de banda máxima para todas as conexões de instâncias de computação em cada região de um projeto para destinos fora de uma rede VPC é definida pelas cotas de largura de banda de saída de Internet do projeto.

Os destinos fora de uma rede VPC incluem todos os destinos a seguir, cada um deles acessível por uma rota na rede VPC da instância remetente cujo próximo salto é o gateway de Internet padrão:

  • Endereços IPv4 e IPv6 externos globais para Network Load Balancers de proxy externo e Application Load Balancers externos
  • Endereços IPv4 externos regionais para Google Cloud recursos, incluindo endereços IPv4 externos VM vNIC, endereços IPv4 externos para encaminhamento de protocolo externo, balanceadores de carga de rede de passagem externa e pacotes de resposta para gateways Cloud NAT.
  • Endereços IPv6 externos regionais em sub-redes de pilha dupla ou somente IPv6 ( Preview ) com intervalos de endereços IPv6 externos usados ​​por endereços IPv6 externos de instâncias de pilha dupla ou somente IPv6 ( Preview ), encaminhamento de protocolo externo e balanceadores de carga de rede de passagem externa. A sub-rede deve estar localizada em uma rede VPC separada e sem peering. O intervalo de endereços IPv6 de destino deve ser acessível usando uma rota na rede VPC da instância remetente cujo próximo salto seja o gateway de Internet padrão. Se uma sub-rede de pilha dupla ou somente IPv6 com um intervalo de endereços IPv6 externo estiver localizada na mesma rede VPC ou em uma rede VPC com peering, consulte Saída para destinos roteáveis ​​em uma rede VPC .
  • Outros destinos externos acessíveis usando uma rota estática na rede VPC da instância remetente, desde que o próximo salto da rota seja o gateway de Internet padrão.

Para detalhes sobre quais Google Cloud recursos usam quais tipos de endereços IP externos, consulte Endereços IP externos .

Largura de banda de entrada

Google Cloud lida com a largura de banda de entrada (entrada) dependendo de como o pacote de entrada é roteado para uma instância de computação receptora.

Entrada para destinos roteáveis ​​em uma rede VPC

Uma instância receptora pode lidar com tantos pacotes recebidos quanto seu tipo de máquina, sistema operacional e outras condições de rede permitirem. Google Cloud não implementa nenhuma restrição proposital de largura de banda em pacotes recebidos entregues a uma instância se o pacote recebido for entregue usando rotas dentro de uma rede VPC:

  • Rotas de sub-rede na rede VPC da instância receptora
  • Fazendo peering de rotas de sub-rede em uma rede VPC com peering
  • Rotas em outra rede cujos próximos saltos sejam túneis do Cloud VPN, anexos do Cloud Interconnect (VLAN) ou instâncias do dispositivo roteador localizadas na rede VPC da instância receptora

Os destinos dos pacotes roteados em uma rede VPC incluem:

  • O endereço IPv4 interno primário da interface de rede (NIC) da instância receptora. Endereços IPv4 internos primários são endereços IPv4 internos regionais provenientes do intervalo de endereços IPv4 primário de uma sub-rede .
  • Um endereço IPv4 interno de um intervalo de IP de alias da NIC da instância receptora. Os intervalos de IP de alias podem vir do intervalo de endereços IPv4 primário de uma sub-rede ou de um de seus intervalos de endereços IPv4 secundários.
  • Um endereço IPv6 do intervalo de endereços /96 IPv6 atribuído a uma NIC de instância de recebimento de pilha dupla ou somente IPv6 ( Preview ). Os intervalos IPv6 da instância de computação podem vir destes intervalos IPv6 de sub-rede:
  • Um endereço IPv4 interno de uma regra de encaminhamento usada pelo encaminhamento de protocolo interno para a instância receptora ou para o Network Load Balancer de passagem interna, em que a instância receptora é um back-end do balanceador de carga. Os endereços IPv4 da regra de encaminhamento interno vêm do intervalo de endereços IPv4 primário de uma sub-rede.
  • Um endereço IPv6 interno do intervalo /96 IPv6 de uma regra de encaminhamento usada pelo encaminhamento de protocolo interno para a instância receptora ou passagem interna do Network Load Balancer, em que a instância receptora é um back-end do balanceador de carga. Regra de encaminhamento interno Os endereços IPv6 vêm do intervalo de endereços IPv6 interno de uma sub-rede.
  • Um endereço IPv6 externo do intervalo /96 IPv6 de uma regra de encaminhamento usada pelo encaminhamento de protocolo externo para a instância de recebimento ou para o Network Load Balancer de passagem externa. A instância receptora é um back-end do balanceador de carga quando o pacote recebido é roteado dentro da rede VPC usando uma das rotas listadas anteriormente nesta seção . Regra de encaminhamento externo Os endereços IPv6 vêm do intervalo de endereços IPv6 externo de uma sub-rede.
  • Um endereço IP dentro do intervalo de destino de uma rota estática personalizada que usa a instância de recebimento como uma instância do próximo salto ( next-hop-instance ou next-hop-address ).
  • Um endereço IP dentro do intervalo de destino de uma rota estática personalizada usando um próximo salto do Network Load Balancer de passagem interna ( next-hop-ilb ), se a instância de recebimento for um back-end para esse balanceador de carga.

Entrada para destinos fora de uma rede VPC

Google Cloud implementa os seguintes limites de largura de banda para pacotes recebidos entregues a uma instância receptora usando rotas fora de uma rede VPC. Quando o balanceamento de carga está envolvido, os limites de largura de banda são aplicados individualmente a cada instância receptora.

Para séries de máquinas que não suportam vários NICs físicos, a restrição de largura de banda de entrada aplicável aplica-se coletivamente a todas as interfaces de rede virtuais (vNICs). O limite é a primeira das seguintes taxas encontradas:

  • 1.800.000 pacotes por segundo
  • 30 Gbps

Para séries de máquinas que suportam diversas NICs físicas, como A4 e A3, a restrição de largura de banda de entrada aplicável se aplica individualmente a cada NIC física. O limite é a primeira das seguintes taxas encontradas:

  • 1.800.000 pacotes por segundo por NIC física
  • 30 Gbps por NIC física

Os destinos de pacotes roteados usando rotas fora de uma rede VPC incluem:

  • Um endereço IPv4 externo atribuído em uma configuração de acesso NAT um para um em uma das interfaces de rede (NICs) da instância receptora.
  • Um endereço IPv6 externo do intervalo de endereços IPv6 /96 atribuído a um vNIC de uma instância de recebimento de pilha dupla ou somente IPv6 ( Preview ) quando o pacote de entrada é roteado usando uma rota fora da rede VPC da instância de recebimento.
  • Um endereço IPv4 externo de uma regra de encaminhamento usada pelo encaminhamento de protocolo externo para a instância receptora ou para o Network Load Balancer de passagem externa, em que a instância receptora é um back-end do balanceador de carga.
  • Um endereço IPv6 externo do intervalo /96 IPv6 de uma regra de encaminhamento usada pelo encaminhamento de protocolo externo para a instância de recebimento ou para o Network Load Balancer de passagem externa. A instância receptora deve ser um back-end do balanceador de carga quando o pacote recebido é roteado usando uma rota fora de uma rede VPC.
  • Respostas de entrada estabelecidas processadas pelo Cloud NAT.

Molduras gigantes

Para receber e enviar jumbo frames , configure a rede VPC usada pelas instâncias de computação; defina a unidade máxima de transmissão (MTU) para um valor maior, até 8896.

Valores mais altos de MTU aumentam o tamanho do pacote e reduzem a sobrecarga do cabeçalho do pacote, o que aumenta a taxa de transferência de dados de carga útil.

Você pode usar jumbo frames com o driver gVNIC versão 1.3 ou posterior em instâncias de VM ou com o driver IDPF em instâncias bare metal. Nem todos Google Cloud imagens públicas incluem esses drivers. Para obter mais informações sobre o suporte do sistema operacional para jumbo frames, consulte a guia Recursos de rede na página de detalhes do sistema operacional .

Se você estiver usando uma imagem de sistema operacional que não tem suporte total para jumbo frames, poderá instalar manualmente o driver gVNIC versão v1.3.0 ou posterior. O Google recomenda instalar a versão do driver gVNIC marcada como Latest para se beneficiar de recursos adicionais e correções de bugs. Você pode baixar os drivers gVNIC do GitHub .

Para atualizar manualmente a versão do driver gVNIC em seu sistema operacional convidado, consulte Uso em sistemas operacionais não suportados .

Receber e transmitir filas

Cada NIC ou vNIC de uma instância de computação recebe um número de filas de recebimento e transmissão para processar pacotes da rede.

  • Receive Queue (RX): Fila para recebimento de pacotes. Quando a NIC recebe um pacote da rede, a NIC seleciona o descritor para um pacote de entrada da fila, processa-o e entrega o pacote ao sistema operacional convidado por meio de uma fila de pacotes anexada a um núcleo de vCPU usando uma interrupção. Se a fila RX estiver cheia e não houver buffer disponível para colocar um pacote, o pacote será descartado. Isso normalmente pode acontecer se um aplicativo estiver utilizando excessivamente um núcleo de vCPU que também está anexado à fila de pacotes selecionada.
  • Fila de Transmissão (TX): Fila para transmissão de pacotes. Quando o sistema operacional convidado envia um pacote, um descritor é alocado e colocado na fila de TX. A NIC então processa o descritor e transmite o pacote.

Alocação de fila padrão

A menos que você atribua explicitamente contagens de filas para NICs , você pode modelar o algoritmo Google Cloud usa para atribuir um número fixo de filas RX e TX por NIC desta forma:

Instâncias sem sistema operacional
Para instâncias bare metal, há apenas uma NIC, portanto a contagem máxima de filas é 16.
Instâncias de VM que usam a interface de rede gVNIC

Para instâncias C4, para melhorar o desempenho, as configurações a seguir usam um número fixo de filas:

  • Para instâncias Linux com 2 vCPUs, a contagem de filas é 1.
  • Para instâncias Linux com 4 vCPUs, a contagem de filas é 2.

Para as outras séries de máquinas, a contagem de filas depende se a série de máquinas utiliza Titanium ou não.

  • Para instâncias de terceira geração (excluindo M3) e posteriores que usam Titanium:

    Divida o número de vCPUs pelo número de vNICs ( num_vcpus/num_vnics ) e descarte qualquer restante.

  • Para VMs de primeira e segunda geração que não usam Titanium:

    Divida o número de vCPUs pelo número de vNICs e, em seguida, divida o resultado por 2 ( num_vcpus/num_vnics/2 ). Descarte qualquer restante.

Para finalizar o cálculo da contagem de filas padrão:

  1. Se o número calculado for menor que 1, atribua uma fila a cada vNIC.

  2. Determine se o número calculado é maior que o número máximo de filas por vNIC, que é 16 . Se o número calculado for maior que 16 , ignore o número calculado e atribua 16 filas a cada vNIC.

Instâncias de VM usando a interface de rede VirtIO ou um driver personalizado

Divida o número de vCPUs pelo número de vNICs e descarte qualquer restante — [number of vCPUs/number of vNICs] .

  1. Se o número calculado for menor que 1, atribua uma fila a cada vNIC.

  2. Determine se o número calculado é maior que o número máximo de filas por vNIC, que é 32 . Se o número calculado for maior que 32 , ignore o número calculado e atribua 32 filas a cada vNIC.

Exemplos

Os exemplos a seguir mostram como calcular o número padrão de filas para uma instância de VM:

  • Se uma instância de VM usar VirtIO e tiver 16 vCPUs e 4 vNICs, o número calculado será [16/4] = 4 . Google Cloud atribui a cada vNIC quatro filas.

  • Se uma instância de VM usar gVNIC e tiver 128 vCPUs e duas vNICs, o número calculado será [128/2/2] = 32 . Google Cloud atribui a cada vNIC o número máximo possível de filas por vNIC. Google Cloudatribui 16 filas por vNIC.

Em sistemas Linux, você pode usar ethtool para configurar um vNIC com menos filas que o número de filas Google Cloud atribui por vNIC.

Alocação de fila personalizada para instâncias de VM

Em vez da alocação de fila padrão , você pode atribuir uma contagem de fila personalizada (total de RX e TX) a cada vNIC ao criar uma nova instância de computação usando a API Compute Engine.

O número de filas personalizadas especificadas deve obedecer às seguintes regras:

  • A contagem mínima de filas que você pode atribuir por vNIC é uma.

  • A contagem máxima de filas que você pode atribuir a cada vNIC de uma instância de VM é a menor entre a contagem de vCPU ou a contagem máxima de fila por vNIC, com base no tipo de driver:

    • Usando virtIO ou um driver customizado, a contagem máxima de filas é 32 .
    • Usando gVNIC , a contagem máxima de filas é 16 , exceto o seguinte, onde a contagem máxima de filas é 32:
      • Instâncias A2 ou G2
      • Instâncias de TPU
      • Instâncias C2, C2D, N2 ou N2D com rede Tier_1 habilitada
    • Para as seguintes configurações de VM confidencial , a contagem máxima de filas é 8 :

      • AMD SEV em tipos de máquinas C2D e N2D
      • AMD SEV-SNP em tipos de máquinas N2D
  • Se você atribuir contagens de filas personalizadas a todas as NICs da instância de computação, a soma das atribuições de contagem de filas deverá ser menor ou igual ao número de vCPUs atribuídas à instância.

Você pode assinar demais a contagem de filas personalizadas para seus vNICs. Em outras palavras, você pode ter uma soma das contagens de filas atribuídas a todas as NICs da sua instância de VM que seja maior que o número de vCPUs da sua instância. Para sobrecarregar a contagem de filas personalizadas, a instância de VM deve atender às seguintes condições:

  • Use gVNIC como o tipo de vNIC para todas as NICs configuradas para a instância.
  • Usa um tipo de máquina compatível com rede Tier_1.
  • Possui rede Tier_1 habilitada.
  • Especificou uma contagem de fila personalizada para todas as NICs configuradas para a instância.

Com excesso de assinaturas de fila, a contagem máxima de filas para a instância de VM é 16 vezes o número de NICs. Portanto, se você tiver 6 NICs configuradas para uma instância com 30 vCPUs, poderá configurar no máximo (16 * 6) ou 96 filas personalizadas para sua instância.

Exemplos

  • Se uma instância de VM tiver 8 vCPUs e 3 vNICs, a contagem máxima de filas para a instância será o número de vCPUS ou 8. Você pode atribuir 1 fila a nic0 , 4 filas a nic1 e 3 filas a nic2 . Neste exemplo, você não pode atribuir posteriormente 4 filas ao nic2 enquanto mantém as outras duas atribuições de filas vNIC porque a soma das filas atribuídas não pode exceder o número de vCPUs.

  • Se você tiver uma VM N2 com 96 vCPUs e 2 vNICs, poderá atribuir a ambos os vNICs até 32 filas cada ao usar o driver virtIO ou até 16 filas cada ao usar o driver gVNIC. Se você habilitar a rede Tier_1 para a VM N2, poderá atribuir até 32 filas a cada vNIC. Neste exemplo, a soma das filas atribuídas é sempre menor ou igual ao número de vCPUs.

Também é possível atribuir uma contagem de fila personalizada apenas para algumas NICs , permitindoGoogle Cloud atribua filas às NICs restantes. O número de filas que você pode atribuir por vNIC ainda está sujeito às regras mencionadas anteriormente. Você pode modelar a viabilidade de sua configuração e, se sua configuração for possível, o número de filas que Google Cloud atribui aos vNICs restantes com este processo:

  1. Calcule a soma das filas para os vNICs usando a atribuição de fila personalizada. Para um exemplo de VM com 20 vCPUs e 6 vNICs, suponha que você atribua 5 filas nic0 , 6 filas nic1 , 4 filas nic2 e deixe Google Cloudatribua filas para nic3 , nic4 e nic5 . Neste exemplo, a soma das filas atribuídas de forma personalizada é 5+6+4 = 15 .

  2. Subtraia a soma das filas atribuídas de forma personalizada do número de vCPUs. Se a diferença for menor que o número de vNICs restantes para os quaisGoogle Cloud deve atribuir filas, Google Cloud retorna um erro porque cada vNIC deve ter pelo menos uma fila.

    Continuando o exemplo com uma VM que possui 20 vCPUs e uma soma de 15 filas atribuídas de forma personalizada, Google Cloud tem 20-15 = 5 filas restantes para atribuir aos vNICs restantes ( nic3 , nic4 , nic5 ).

  3. Divida a diferença da etapa anterior pelo número de vNICs restantes e descarte qualquer restante — ⌊(number of vCPUs - sum of assigned queues)/(number of remaining vNICs)⌋ . Este cálculo sempre resulta em um número inteiro (não uma fração) que é pelo menos igual a um devido à restrição explicada na etapa anterior. Google Cloud atribui a cada vNIC restante uma contagem de filas correspondente ao número calculado, desde que o número calculado não seja maior que o número máximo de filas por vNIC. O número máximo de filas por vNIC depende do tipo de driver:

  • Usando virtIO ou um driver personalizado, se o número calculado de filas para cada vNIC restante for maior que 32 , Google Cloud atribui a cada fila vNIC 32 restante.
  • Usando gVNIC, se o número calculado de filas para cada vNIC restante for maior que o limite de 16 ou 32 (dependendo da configuração da VM ), Google Cloud atribui a cada fila vNIC 16 restante.

Configurar contagens de filas personalizadas

Para criar uma instância de computação que use uma contagem de fila personalizada para um ou mais NICs ou vNICs, conclua as etapas a seguir.

Nos exemplos de código a seguir, a VM é criada com o tipo de interface de rede definido como GVNIC e por desempenho de rede VM Tier_1 habilitado. Você pode usar esses exemplos de código para especificar as contagens máximas de filas e o excesso de assinaturas de filas disponíveis para os tipos de máquinas compatíveis.

gcloud

  1. Se você ainda não tem uma rede VPC com uma sub-rede para cada interface vNIC que planeja configurar, crie-as.
  2. Use o comando gcloud compute instances create para criar a instância de computação. Repita a sinalização --network-interface para cada vNIC que você deseja configurar para a instância e inclua a opção queue-count .
    gcloud compute instances create INSTANCE_NAME \
        --zone=ZONE \
        --machine-type=MACHINE_TYPE \
        --network-performance-configs=total-egress-bandwidth-tier=TIER_1  \
        --network-interface=network=NETWORK_NAME_1,subnet=SUBNET_1,nic-type=GVNIC,queue-count=QUEUE_SIZE_1 \
        --network-interface=network=NETWORK_NAME_2,subnet=SUBNET_2,nic-type=GVNIC,queue-count=QUEUE_SIZE_2

Substitua o seguinte:

  • INSTANCE_NAME : um nome para a nova instância de computação
  • ZONE : a zona na qual criar a instância
  • MACHINE_TYPE : o tipo de máquina da instância. Para exceder a contagem de filas, o tipo de máquina especificado deve ser compatível com redes gVNIC e Tier_1.
  • NETWORK_NAME : o nome da rede criada anteriormente
  • SUBNET_* : o nome de uma das sub-redes criadas anteriormente
  • QUEUE_SIZE : o número de filas para o vNIC, sujeito às regras discutidas em Alocação de fila personalizada .

Terraforma

  1. Se você ainda não tem uma rede VPC com uma sub-rede para cada interface vNIC que planeja configurar, crie-as.
  2. Crie uma instância de computação com contagens de filas específicas para vNICs usando o recurso google_compute_instance . Repita o parâmetro --network-interface para cada vNIC que você deseja configurar para a instância de computação e inclua o parâmetro queue-count .

    # Queue oversubscription instance
    resource "google_compute_instance" "VM_NAME" {
    project      = "PROJECT_ID"
    boot_disk {
      auto_delete = true
      device_name = "DEVICE_NAME"
      initialize_params {
         image="IMAGE_NAME"
         size = DISK_SIZE
         type = "DISK_TYPE"
      }
    }
    machine_type = "MACHINE_TYPE"
    name         = "VM_NAME"
    zone = "ZONE"
    
    network_performance_config {
        total_egress_bandwidth_tier = "TIER_1"
    }
    
    network_interface {
        nic_type = "GVNIC"
        queue_count = QUEUE_COUNT_1
        subnetwork_project = "PROJECT_ID"
        subnetwork = "SUBNET_1"
     }
    
    network_interface {
        nic_type = "GVNIC"
        queue_count = QUEUE_COUNT_2
        subnetwork_project = "PROJECT_ID"
        subnetwork = "SUBNET_2"
    }
    
    network_interface {
        nic_type = "GVNIC"
        queue_count = QUEUE_COUNT_3
        subnetwork_project = "PROJECT_ID"
        subnetwork = "SUBNET_3""
    }
    
    network_interface {
        nic_type = "GVNIC"
        queue_count = QUEUE_COUNT_4
        subnetwork_project = "PROJECT_ID"
        subnetwork = "SUBNET_4""
    }
    
    }
    
    

Substitua o seguinte:

  • VM_NAME : um nome para a nova instância de computação
  • PROJECT_ID : ID do projeto no qual a instância será criada. A menos que você esteja usando uma rede VPC compartilhada, o projeto especificado deve ser o mesmo em que todas as sub-redes e redes foram criadas.
  • DEVICE_NAME : o nome a ser associado ao disco de inicialização no sistema operacional convidado
  • IMAGE_NAME : o nome de uma imagem, por exemplo, "projects/debian-cloud/global/images/debian-11-bullseye-v20231010" .
  • DISK_SIZE : o tamanho do disco de inicialização, em GiB
  • DISK_TYPE : o tipo de disco a ser usado para o disco de inicialização, por exemplo, pd-standard
  • MACHINE_TYPE : o tipo de máquina da instância. Para exceder a contagem de filas, o tipo de máquina especificado deve ser compatível com redes gVNIC e Tier_1.
  • ZONE : a zona na qual criar a instância
  • QUEUE_COUNT : o número de filas para o vNIC, sujeito às regras discutidas em Alocação de fila personalizada .
  • SUBNET_* : o nome da sub-rede à qual a interface de rede se conecta

DESCANSAR

  1. Se você ainda não tem uma rede VPC com uma sub-rede para cada interface vNIC que planeja configurar, crie-as.
  2. Crie uma instância de computação com contagens específicas de filas para NICs usando o método instances.insert . Repita a propriedade networkInterfaces para configurar várias interfaces de rede.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
    "name": "VM_NAME",
    "machineType": "machineTypes/MACHINE_TYPE",
    "networkPerformanceConfig": {
        "totalEgressBandwidthTier": TIER_1
    },
    "networkInterfaces": [
        {
          "nicType": gVNIC,
          "subnetwork":"regions/region/subnetworks/SUBNET_1",
          "queueCount": "QUEUE_COUNT_1"
        } ],
    "networkInterfaces": [
        {
          "nicType": gVNIC,
          "subnetwork":"regions/region/subnetworks/SUBNET_2",
          "queueCount": "QUEUE_COUNT_2"
        } ],
    }
    

    Substitua o seguinte:

    • PROJECT_ID : ID do projeto para criar a instância de computação em
    • ZONE : Zona para criar a instância de computação em
    • VM_NAME : nome da nova instância de computação
    • MACHINE_TYPE : Tipo de máquina, predefinido ou personalizado , para a nova instância de computação. Para assinaturas de excesso da contagem de filas, o tipo de máquina deve suportar o GVNIC e o Networking de Tier_1.
    • SUBNET_* : o nome da sub -rede à qual a interface de rede se conecta
    • QUEUE_COUNT : número de filas para o VNIC, sujeito às regras discutidas na alocação de filas personalizadas .

Alocações da fila e alteração do tipo de máquina

As instâncias de computação são criadas com uma alocação de filas padrão ou você pode atribuir uma contagem de filas personalizada a cada placa de interface de rede virtual (VNIC) ao criar uma nova instância de computação usando a API do mecanismo de computação. As atribuições de fila VNIC padrão ou personalizadas são definidas apenas ao criar uma instância de computação. Se sua instância tiver VNICs que usam contagens de filas padrão, você poderá alterar o tipo de máquina . Se o tipo de máquina para o qual você está alterando tiver um número diferente de VCPUs, a contagem de filas padrão para sua instância será recalculada com base no novo tipo de máquina.

Se a sua VM tiver VNICs que usam contagens personalizadas de filas sem antecedentes, você poderá alterar o tipo de máquina usando a API do Google Cloud CLI ou Compute Engine para atualizar as propriedades da instância . A conversão é bem -sucedida se a VM resultante suportar a mesma contagem de filas por VNIC que a instância original. Para VMs que usam a interface virtio-Net e possuem uma contagem de filas personalizada superior a 16 por VNIC, você não pode alterar o tipo de máquina para um tipo de máquina de terceira geração ou posterior, porque eles usam apenas GVNIC. Em vez disso, você pode migrar sua VM para um tipo de máquina de terceira geração ou posterior seguindo as instruções para mover sua carga de trabalho para uma nova instância de computação .

O que vem a seguir