Largura de banda da rede


O Google Cloud considera a largura de banda por instância de computação, e não por interface de rede virtual (vNIC, na sigla em inglês) ou endereço IP. O tipo de máquina da instância define a maior taxa de saída possível. No entanto, só é possível atingir essa taxa de saída máxima em circunstâncias específicas.

Nesta página, descrevemos as expectativas, que são úteis para o planejamento das implantações. Ele categoriza a largura de banda a partir de duas dimensões:

  • Saída ou entrada: conforme usados nesta página, a saída e a entrada são sempre da perspectiva de uma instância do Google Cloud:
    • Os pacotes enviados de uma instância do Google Cloud compõem o tráfego de saída (envio).
    • Os pacotes enviados a uma instância do Google Cloud compõem o tráfego de entrada (recebimento).
  • Como o pacote é roteado: um pacote pode ser roteado de uma instância de envio ou de uma instância de recebimento usando rotas cujos próximos saltos estão dentro de uma rede VPC ou rotas fora de uma rede VPC.

Nem outras interfaces de rede virtual (vNICs, na sigla em inglês) nem endereços IP extras por vNIC aumentam a largura de banda de entrada ou saída de uma instância da computação. Por exemplo, uma VM C3 com 22 vCPUs está limitada a 23 Gbps de largura de banda de saída total. Se você configurar a VM C3 com duas vNICs, a VM ainda será limitada a 23 Gbps de largura de banda de saída total, e não de 23 Gbps por vNIC.

Todas as informações nesta página são aplicáveis às instâncias da computação do Compute Engine, além de 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 as expectativas de largura de banda com base no fato de um pacote ser enviado (saída) ou recebido por uma instância da computação e o método de roteamento de pacotes.

Egress

Expectativas de largura de banda
Roteamento em uma rede VPC
  • Principalmente definida 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á ativada.

    • VMs N2, N2D, C2 e C2D com suporte de rede Tier_1 a limites de largura de banda de saída de até 100 Gbps.
    • As VMs H3 são compatíveis com limites de largura de banda de saída de VM para VM de até 200 Gbps.
    • As instâncias X4, A2 e G2 são compatíveis com limites de largura de banda de saída de até 100 Gbps.
    • As instâncias A3 são compatíveis com limites de largura de banda de saída de até 1.800 Gbps.
    • As instâncias C4, C3, C3D e Z3 oferecem suporte a limites de largura de banda de saída de até 200 Gbps com a rede Tier_1.
  • Para outros fatores, definições e cenários, consulte Saída para destinos roteáveis em uma rede VPC.
Roteamento fora de uma rede VPC
  • Principalmente definida 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á ativada. Com exceção das VMs H3, a saída máxima possível de uma instância de envio para um destino fora da rede VPC não pode exceder o seguinte:

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

Entrada

Expectativas de largura de banda
Roteamento em uma rede VPC
  • Geralmente, as taxas de entrada são semelhantes às taxas de saída de um tipo de máquina.
  • O tamanho da sua instância de computação, a capacidade da NIC do servidor, o tráfego que entra em outras VMs convidadas em execução no mesmo hardware de host, a configuração de rede do SO convidado e o número de leituras de disco realizadas pela instância podem afetar a taxa de entrada.
  • O Google Cloud não impõe outras limitações à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 fora de uma rede VPC
  • O 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)
    • 10 Gbps
  • Para uma série de máquinas que oferece suporte a várias NICs físicas como A3, o limite é a primeira das taxas encontrados a seguir:

    • 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

O Google Cloud limita a largura de banda de saída usando as taxas máximas de saída por instância. Essas taxas são baseadas no tipo de máquina da instância de computação que está enviando o pacote e se o destino dele está 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 placas de rede (NICs) da instância e os dados transferidos para todos os discos e os volumes do Persistent Disk 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 de máquinas. A tabela a seguir mostra o intervalo de limites máximos para largura de banda de saída do tráfego roteado dentro de uma rede VPC apenas para o nível de rede padrão, não por desempenho de rede da VM de Tier_1.

Série de máquina Menor limite máximo de saída por instância sem a rede Tier_1 Maior limite máximo de saída por instância sem a rede Tier_1
C4 10 Gbps 100 Gbps
C3 23 Gbps 100 Gbps
C3D 20 Gbps 100 Gbps
C2 e C2D 10 Gbps 32 Gbps
E2 1 Gbps 16 Gbps
H3 N/A 200 Gbps
N4 10 Gbps 50 Gbps
N2 e N2D 10 Gbps 32 Gbps
N1 (excluindo VMs com 1 vCPU) 10 Gbps 32 Gbps na plataforma de CPU Intel Skylake
16 Gbps em plataformas de CPU mais antigas que a Intel Skylake
Tipos de máquina N1 com 1 vCPU, f1-micro e g1-small 2 Gbps 2 Gbps
T2D 10 Gbps 32 Gbps
X4 N/A 100 Gbps
Z3 23 Gbps 100 Gbps

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

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

  • Usar o VirtIO em vez de gVNIC com instâncias de computação compatíveis com
  • Tamanho do pacote
  • Sobrecarga de protocolo
  • O número de fluxos
  • configurações do driver Ethernet do SO convidado da instância da computação, como descarregamento de soma de verificação e descarga de segmentação TCP (TSO, na sigla em inglês)
  • Congestionamento da rede
  • Em uma situação em que os discos permanentes I/Os concorrem com outro tráfego de saída de rede, 60% da largura de banda máxima da rede é destinada às gravações do Persistent Disk, deixando 40% para o outro tráfego de saída. Consulte Fatores que afetam o desempenho do disco para mais detalhes.

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

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

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

  • Largura de banda de saída máxima por VM: a largura de banda máxima de saída por instância descrita na seção Largura de banda de saída máxima por instância.
  • Largura de banda de saída inter-regional por projeto: se uma instância de envio e um destino interno ou o próximo salto estiverem em regiões diferentes, o Google Cloud vai aplicar um limite máximo de largura de banda de saída inter-regional. de dois minutos. É improvável que a maioria dos clientes atinja esse limite. Para dúvidas sobre esse limite, registre um caso de suporte.
  • Limites do Cloud VPN e do Cloud Interconnect: ao enviar tráfego de uma instância para um destino de endereço IP interno roteável por um túnel do Cloud VPN de próximo salto ou um anexo da VLAN do Cloud Interconnect, a largura de banda de saída é limitada por:

Os destinos roteáveis em uma rede VPC incluem todos os destinos a seguir. Cada um deles pode ser acessado da perspectiva da instância de envio por uma rota em que o próximo salto não é o gateway de Internet padrão:

  • Endereços IPv4 internos regionais em intervalos de endereços IPv4 principais e secundários da sub-rede, incluindo intervalos de endereços IPv4 particulares e públicos de uso particular, usados por estes recursos de destino:
    • O endereço IPv4 interno principal da interface de rede (vNIC) de uma instância de recebimento. Quando uma instância de envio se conecta ao endereço IPv4 externo da vNIC, 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 do alias da placa de rede (vNIC) da instância de recebimento.
    • Um endereço IPv4 interno de uma regra de encaminhamento interno para encaminhamento de protocolo ou para um balanceador de carga de rede 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 pilha dupla que recebe a vNIC da instância de recebimento.
    • Um endereço IPv6 do intervalo de endereços IPv6 /96 de uma regra de encaminhamento interna para encaminhamento de protocolo ou para um balanceador de carga de rede 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 na rede VPC ou por rotas personalizadas no Rede VPC que não usa o próximo salto padrão do gateway da Internet:
    • Um endereço IPv6 do intervalo de endereços IPv6 /96 atribuído a uma pilha dupla que recebe a vNIC da instância de recebimento.
    • Um endereço IPv6 do intervalo de endereços IPv6 /96 de uma regra de encaminhamento externa para encaminhamento de protocolo ou para um balanceador de carga de rede de passagem externa.
  • Outros destinos acessíveis usando as seguintes rotas de rede VPC:

A lista a seguir classifica o tráfego do envio de instâncias 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, o Google Cloud limita o tráfego de saída às taxas a seguir que forem alcançadas 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 da computação com destinos fora de uma rede VPC é o menor Largura de banda máxima de saída por instância e uma destas taxas:

    • 25 Gbps, se a rede Tier_1 estiver ativada
    • 7 Gbps, se a rede Tier_1 não estiver ativada
    • 1 Gbps para instâncias H3
    • 7 Gbps por NIC física para séries de máquinas compatíveis com várias NICs físicas, como 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 c3-standard-44 para destinos externos é de 25 Gbps ou 7 Gbps, dependendo da ativação da rede Tier_1.

  • Taxa de saída máxima por fluxo: a largura de banda máxima para cada conexão de 5 tuplas única, de uma instância da computação para um destino fora de uma rede VPC, é 3 Gbps, exceto no 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 das 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 da Internet do projeto.

Os destinos fora de uma rede VPC incluem todos os destinos a seguir. Cada um deles pode ser acessado por uma rota na rede VPC da instância de envio, em que o próximo salto é o gateway de Internet padrão:

  • Endereços IPv4 e IPv6 externos globais para balanceadores de carga de rede de proxy externo e balanceadores de carga de aplicativo externos
  • Endereços IPv4 externos regionais para recursos do Google Cloud, incluindo endereços IPv4 externos de vNIC da VM, endereços IPv4 externos para encaminhamento de protocolo externo, balanceadores de carga de rede de passagem externa e pacotes de resposta para gateways NAT do Cloud.
  • Endereços IPv6 externos regionais em sub-redes de pilha dupla com intervalos de endereços IPv6 externos usados pelos endereços IPv6 externos de instâncias de pilha dupla, encaminhamento de protocolo externo e balanceadores de carga de rede de passagem externa. A sub-rede precisa estar em uma rede VPC separada e sem peering. O intervalo de endereços IPv6 de destino precisa ser acessível usando uma rota na rede VPC da instância de envio em que o próximo salto é o gateway de Internet padrão. Se uma sub-rede de pilha dupla 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 por meio de uma rota estática na rede VPC da instância de envio, desde que o próximo salto da rota seja o gateway de Internet padrão.

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

Largura de banda de entrada

O Google Cloud processa a largura de banda de entrada (entrada) dependendo de como o pacote de entrada é roteado para uma instância da computação de recebimento.

Entrada para destinos roteáveis em uma rede VPC

Uma instância de recebimento pode processar tantos pacotes de entrada quanto o tipo de máquina, o sistema operacional e outras condições de rede permitirem. O Google Cloud não implementará nenhuma restrição de largura de banda intencional nos pacotes de entrada entregues a uma instância se o pacote de entrada for entregue usando rotas dentro de uma rede VPC:

  • Rotas de sub-rede na rede VPC da instância de recebimento
  • Rotas de sub-rede com peering em uma rede VPC com peering
  • Rotas em outra rede que tenham como próximos saltos os túneis do Cloud VPN, anexos do Cloud Interconnect (VLAN) ou instâncias de dispositivo roteador localizadas na rede VPC da instância de destino

Estes são os destinos de pacotes roteados dentro de uma rede VPC:

  • O endereço IPv4 interno principal da interface de rede (NIC) da instância de destino. Os endereços IPv4 internos primários são endereços IPv4 internos regionais provenientes do intervalo de endereços IPv4 principal de uma sub-rede.
  • Um endereço IPv4 interno de um intervalo de IP do alias da placa de rede (NIC) da instância de destino. Os intervalos de IP do alias podem vir de um intervalo de endereços IPv4 principal da sub-rede ou de um dos intervalos de endereços IPv4 secundários.
  • Um endereço IPv6 do intervalo de endereços IPv6 /96 atribuído a uma pilha dupla que recebe a NIC da instância. Os intervalos IPv6 da instância da computação podem vir destes intervalos IPv6 de sub-redes:
  • Um endereço IPv4 interno de uma regra de encaminhamento usado pelo encaminhamento de protocolo interno para a instância de recebimento ou o balanceador de carga de rede de passagem interna em que a instância de recebimento é um back-end do balanceador de carga. Os endereços IPv4 da regra de encaminhamento interno vêm do intervalo de endereços IPv4 principal de uma sub-rede.
  • Um endereço IPv6 interno do intervalo IPv6 /96 de uma regra de encaminhamento usado pelo encaminhamento de protocolo interno para a instância de recebimento ou o balanceador de carga de rede de passagem interna em que a instância de recebimento é um back-end do balanceador de carga. Os endereços IPv6 da regra de encaminhamento interno vêm do intervalo de endereços IPv6 interno de uma sub-rede.
  • Um endereço IPv6 externo do intervalo IPv6 /96 de uma regra de encaminhamento usada por encaminhamento de protocolo externo para a instância de recebimento ou o balanceador de carga de rede de passagem externa. A instância de recebimento é um back-end do balanceador de carga quando o pacote de entrada é roteado na rede VPC usando uma das rotas listadas anteriormente nesta seção. Os endereços IPv6 da regra de encaminhamento externo 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 usando o recebimento da instância como uma instância de próximo salto (next-hop-instance ou next-hop-address).
  • Um endereço IP no intervalo de destino de uma rota estática personalizada usando um próximo salto de balanceador de carga de rede interno (next-hop-ilb), se a instância de destino for um back-end para esse balanceador de carga.

Entrada para destinos fora de uma rede VPC

O Google Cloud implementa os limites de largura de banda a seguir para pacotes de entrada entregues a uma instância de recebimento usando rotas fora de uma rede VPC. Quando há balanceamento de carga envolvido, os limites de largura de banda são aplicados individualmente a cada instância de recebimento.

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

  • 180.000.000 pacotes por segundo
  • 10 Gbps

Para séries de máquinas compatíveis com várias NICs físicas, como a A3, a restrição aplicável de largura de banda de entrada 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 de destino.
  • Um endereço IPv6 externo do intervalo de endereços IPv6 /96 atribuído a uma vNIC de uma instância de recebimento de pilha dupla quando o pacote de entrada é roteado usando uma rota fora da rede VPC da instância de destino.
  • Um endereço IPv4 externo de uma regra de encaminhamento usado pelo protocolo externo encaminhando para a instância de recebimento ou o balanceador de carga de rede de passagem externa em que a instância de recebimento é um back-end do balanceador de carga.
  • Um endereço IPv6 externo do intervalo IPv6 /96 de uma regra de encaminhamento usado pelo encaminhamento de protocolo externo para a instância de recebimento ou o balanceador de carga de rede de passagem externa em que a instância de recebimento é um back-end do balanceador de carga quando o pacote de entrada é roteado usando uma rota fora de uma rede VPC.
  • Respostas de entrada estabelecidas que foram processadas pelo Cloud NAT.

Quadros enormes

Para receber e enviar frames muito grandes, configure a rede VPC usada pelas instâncias da computação. Defina a unidade máxima de transmissão (MTU, na sigla em inglês) para um valor maior, até 8896.

Valores de MTU mais altos aumentam o tamanho do pacote e reduzem a sobrecarga do cabeçalho do pacote, o que aumenta a capacidade de dados do payload.

É possível usar frames jumbo com a versão 1.3 ou mais recente do driver gVNIC em instâncias de VM ou com o driver IDPF em instâncias bare metal. Nem todas as imagens públicas do Google Cloud incluem esses drivers. Para mais informações sobre a compatibilidade do sistema operacional com frames jumbo, consulte a guia Recursos de rede na página Detalhes do sistema operacional.

Se você está usando uma imagem do SO que não tem suporte total a frames jumbo, é possível instalar manualmente o driver da gVNIC versão 1.3.0 ou mais recente. O Google recomenda a instalação da versão do driver da gVNIC marcada como Latest para aproveitar os benefícios de outros recursos e correções de bugs. Faça o download dos drivers gVNIC pelo GitHub.

Para atualizar manualmente a versão do driver da gVNIC no sistema operacional convidado, consulte Usar em sistemas operacionais não compatíveis.

Filas de recebimento e transmissão

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

  • Fila de recebimento (RX): fila para receber pacotes. Quando a NIC recebe um pacote da rede, a NIC seleciona o descritor de um pacote recebido da fila, o processa e o envia para o SO convidado em uma fila de pacotes anexada a uma vCPU núcleo por 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 superutilizando um núcleo de vCPU que também está anexado à fila de pacotes selecionada.
  • Fila de transmissão (TX): fila para transmitir pacotes. Quando o SO convidado envia um pacote, um descritor é alocado e colocado na fila do TX. Em seguida, a NIC processa o descritor e transmite o pacote.

Alocação de fila padrão

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

Instâncias bare metal
Para instâncias bare metal, há apenas uma NIC, então a fila máxima é 16.
Como criar instâncias de VM que usam a interface de rede gVNIC

A contagem da fila depende se a série da máquina usa Titanium ou não.

  • Instâncias da geração 3 (exceto M3) e mais recentes que usam o Titanium: divida o número de vCPUs pelo número de vNICs (num_vcpus/num_vnics).
  • VMs de 1ª e 2ª geração que não usam o Titanium: divida o número de vCPUs pelo número de vNICs e divida o resultado por 2 (num_vcpus/num_vnics/2).

Descarte qualquer restante.

  1. Para melhorar a performance das instâncias C4, as seguintes configurações não usam os cálculos padrão:

    • Para instâncias do Linux com duas vCPUs, a contagem de filas é 1.
    • Para instâncias do Linux com 4 vCPUs, a contagem de filas é 2.
  2. Se o número calculado for menor que 1, atribua uma vNIC a cada fila.

  3. 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 que usam a interface de rede VirtIO ou um driver personalizado

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

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

  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.

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 o VirtIO e tiver 16 vCPUs e 4 vNICs, o número calculado é [16/4] = 4. O Google Cloud atribui quatro filas a cada vNIC.

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

Em sistemas Linux, use ethtool para configurar uma vNIC com menos filas do que o número de filas que o Google Cloud atribui por vNIC.

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

Em vez da alocação padrão de filas, é possível atribuir uma contagem de filas personalizada (total de RX e TX) a cada vNIC ao criar uma nova instância da computação usando a API Compute Engine.

O número de filas personalizadas que são especificadas precisa aderir às seguintes regras:

  • A contagem mínima de filas que pode ser atribuída por vNIC é uma;

  • A contagem máxima de filas que pode ser atribuída a cada vNIC de uma instância de VM é o menor da contagem de vCPUs ou a contagem máxima de filas por vNIC, com base no tipo de driver:

    • usando virtIO ou um driver personalizado, a contagem máxima de filas será 32;
    • usando gVNIC, a contagem máxima de filas será 16. Para as seguintes configurações de VM confidencial, a contagem máxima de filas é 8:

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

É possível que haja excesso de inscrições na contagem de filas personalizadas das cNICs. Em outras palavras, é possível ter uma soma das contagens de filas atribuídas a todas as NICs da instância da VM que seja maior do que o número de vCPUs da instância. Para fazer mais inscrições na contagem de filas personalizadas, a instância de VM precisa atender às seguintes condições:

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

Com a assinatura em excesso de fila, a contagem máxima de filas da instância da VM é 16 vezes o número de placas de rede. Portanto, se você tiver 6 NICs configuradas para uma instância com 30 vCPUs, será possível configurar no máximo 16 * 6 ou 96 filas personalizadas para sua instância.

Exemplos

  • Se uma instância VM tiver 8 vCPUs e 3 NICs, a contagem máxima de filas da instância será o número de vCPUs, ou seja, 8. É possível atribuir uma fila a nic0, quatro filas a nic1 e três filas a nic2. Neste exemplo, não é possível atribuir quatro filas posteriormente a nic2 enquanto mantém as outras duas atribuições de filas de vNIC porque a soma das filas atribuídas não pode exceder o número de vCPUs (oito).

  • Se uma instância da VM tiver 96 vCPUs e duas NICs, você poderá atribuir até 32 filas às duas NICs usando o driver virtIO ou até 16 filas usando o driver gvNIC. Neste exemplo, a soma das filas atribuídas é sempre menor que o número de vCPUs.

Também é possível atribuir uma contagem de filas personalizadas para apenas algumas NICs, permitindo que o Google Cloud atribua filas para as NICs restantes. O número de filas que podem ser atribuídas por vNIC ainda está sujeito às regras mencionadas anteriormente. Simule a possibilidade da configuração e, se for possível, o número de filas que o Google Cloud atribui às NICs restantes com este processo:

  1. Calcule a soma das filas das NICs usando a atribuição de filas personalizada. Para uma instância de VM com 20 vCPUs e 6 NICs, suponha que você atribua nic0 5 filas, nic1 6 filas, nic2 4 filas, e deixe que o Google Cloud atribua filas para nic3, nic4 e nic5. Neste exemplo, a soma das filas personalizadas atribuídas é 5+6+4 = 15.

  2. Subtraia a soma das filas personalizadas atribuídas do número de vCPUs. Se a diferença não for pelo menos igual ao número de NICs restantes a que o Google Cloud precisa atribuir filas, o Google Cloud retornará um erro. Continuando com o exemplo de instância de 20 vCPUs e uma soma de filas personalizadas atribuídas 15, o Google Cloud tem filas 20-15 = 5 restantes para atribuir às outras NICs (nic3, nic4 e nic5).

  3. Divida a diferença da etapa anterior pelo número de NICs restantes e descarte qualquer restante: ⌊(number of vCPUs - sum of assigned queues)/(number of remaining NICs)⌋. Esse cálculo sempre resulta em um número inteiro (não uma fração) maior que zero devido à restrição explicada na etapa anterior. O Google Cloud atribui a cada NIC 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, o Google Cloud atribui 32 filas a cada vNIC restante.
    • Usando gVNIC, se o número calculado de filas para cada NIC restante for maior que 16, o Google Cloud atribuirá 16 filas a cada vNIC.

Configurar contagens de filas personalizadas

Para criar uma instância de computação que usa uma contagem de fila personalizada para um ou mais NICs ou vNICs, siga as etapas abaixo.

gcloud

  1. Se você ainda não tiver uma rede VPC com uma sub-rede para cada interface vNIC que planeja configurar, crie-a.
  2. Use o comando gcloud compute instances create para criar a instância de computação. Repita a flag --network-interface para cada vNIC que você quer 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:

  • INSTANCE_NAME: um nome para a nova instância do Compute
  • ZONE: a zona na qual será criada a instância.
  • MACHINE_TYPE: o tipo de máquina da instância Para exceder a contagem da fila, o tipo de máquina que você especificar precisa oferecer suporte à rede 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 da vNIC, sujeito às regras discutidas em Alocação de fila personalizada.

Terraform

  1. Se você ainda não tiver uma rede VPC com uma sub-rede para cada interface vNIC que planeja configurar, crie-a.
  2. Crie uma instância de computação com contagens de fila específicas para vNICs usando o recurso google_compute_instance. Repita o parâmetro --network-interface para cada vNIC que você quer 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:

  • VM_NAME: um nome para a nova instância do Compute
  • PROJECT_ID: o ID do projeto em que a instância será criado. A menos que você esteja usando uma rede VPC compartilhada, o projeto especificado precisa 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 SO 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 da fila, o tipo de máquina que você especificar precisa oferecer suporte à rede gVNIC e Tier_1.
  • ZONE: a zona na qual será criada a instância.
  • QUEUE_COUNT: o número de filas da vNIC, sujeito às regras discutidas em Alocação de fila personalizada.
  • SUBNET_*: o nome da sub-rede a que a interface de rede se conecta

REST

  1. Se você ainda não tiver uma rede VPC com uma sub-rede para cada interface vNIC que planeja configurar, crie-a.
  2. Crie uma instância de computação com contagens de filas específicas para placas de rede (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:

    • PROJECT_ID: ID do projeto em que a instância do Compute será criada.
    • ZONE: a zona em que a instância de computação será criada
    • 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 aumentar a contagem de filas, o tipo de máquina precisa ser compatível com gVNIC e rede Tier_1.
    • SUBNET_*: o nome da sub-rede a que a interface de rede se conecta
    • QUEUE_COUNT: número de filas da vNIC, sujeito às regras discutidas em Alocação de fila personalizada.

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

As instâncias de computação são criadas com uma alocação de fila padrão, ou é possível atribuir uma contagem de filas personalizada para cada placa de interface de rede virtual (vNIC, na sigla em inglês) ao criar uma nova instância da computação usando a API Compute Engine. As atribuições de fila de vNIC padrão ou personalizadas são definidas apenas na criação de uma instância de computação. Se a instância tiver vNICs que usam contagens de fila padrão, é possível mudar o tipo de máquina. Se o tipo de máquina para o qual você está mudando tiver um número diferente de vCPUs, as contagens de fila padrão da instância serão recalculadas com base no novo tipo de máquina.

Se a instância da computação tiver vNICs que usam contagens de filas personalizadas e não padrão, é possível alterar o tipo de máquina usando a CLI do Google Cloud ou a API Compute Engine para atualizar as propriedades da instância A conversão será bem-sucedida se a instância da computação resultante for compatível com a mesma contagem de filas por vNIC da instância original. Para instâncias de computação que usam interface VirtIO-Net e têm uma contagem de filas personalizada superior a 16 por vNIC, não é possível alterar o tipo de máquina para uma terceira geração ou posterior, porque usam apenas gVNIC. Em vez disso, é possível migrar sua instância da computação para um tipo de máquina de terceira geração ou posterior, seguindo as instruções Migrar a carga de trabalho para uma nova instância do Compute.

A seguir