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.
Saída
Expectativas de largura de banda | |
---|---|
Roteamento em uma rede VPC |
|
Roteamento fora de uma rede VPC |
|
Entrada
Expectativas de largura de banda | |
---|---|
Roteamento em uma rede VPC |
|
Roteamento 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 para o padrão | Maior limite máximo de saída por instância para o padrão |
---|---|---|
C4 e C4A | 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 |
M3 e M1 | 32 Gbps | 32 Gbps |
M2 | 32 Gbps | 32 Gbps na plataforma de CPU Intel Cascade Lake 16 Gbps em outras plataformas de CPU |
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:
- Séries C, E, N e T: família de máquinas de uso geral
- Série Z: família de máquinas com otimização de armazenamento
- Séries C2 e H: família de máquinas com otimização para computação
- Série M e X: família de máquinas com otimização de memória
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:
- Ative o desempenho de rede por VM de Tier_1. com tipos de máquinas maiores.
- Use a maior unidade máxima de transmissão (MTU, na sigla em inglês) da rede VPC compatível com sua topologia de rede. MTUs maiores podem reduzir a sobrecarga de cabeçalho de pacote e aumentar a capacidade de dados de payload.
- Use a versão mais recente do driver da gVNIC.
- Use séries de máquinas de 3ª geração ou mais recentes que usem o Titanium para descarregar o processamento de rede da CPU host.
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:
- Taxa máxima de pacotes e largura de banda por túnel do Cloud VPN
- Taxa máxima de pacotes e largura de banda por anexo da VLAN
- Para utilizar plenamente a largura de banda de vários túneis do Cloud VPN de próximo salto ou anexos da VLAN do Cloud Interconnect usando o roteamento ECMP, use várias conexões TCP (cinco tuplas únicas).
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.
- Um endereço IPv6 do intervalo de endereços IPv6
- 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.
- Um endereço IPv6 do intervalo de endereços IPv6
- Outros destinos acessíveis usando as seguintes rotas de rede
VPC:
- Rotas dinâmicas
- Rotas estáticas, exceto aquelas que usam um próximo salto de gateway de Internet padrão
- Rotas personalizadas de peering
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:
- Entre instâncias de computação na mesma zona
- Entre instâncias de computação em zonas diferentes da mesma região
- Entre instâncias de computação em diferentes regiões
- De uma instância da computação a APIs e serviços do Google Cloud usando o Acesso privado do Google ou Como acessar as APIs do Google usando um endereço IP externo de uma instância. Isso inclui endpoints do Private Service Connect para APIs do Google.
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 de uma VMc3-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 intervalo de endereços IPv6 interno.
- Um intervalo de endereços IPv6 externo quando o pacote de entrada é roteado internamente para a instância de recebimento usando uma das rotas de rede VPC listadas anteriormente nesta seção.
- 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
ounext-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
Para melhorar a performance das instâncias C4, as seguintes configurações usam um número fixo de filas:
- 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.
Para as outras séries de máquinas, a contagem da fila depende se a série da máquina usa Titanium ou não.
Para instâncias de terceira geração (exceto M3) e mais recentes que usam o Titanium:
Divida o número de vCPUs pelo número de vNICs (
num_vcpus/num_vnics
) e descarte qualquer resto.Para VMs de primeira e segunda 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 resto.
Para concluir o cálculo da contagem de filas padrão:
Se o número calculado for menor que 1, atribua uma vNIC a cada fila.
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 que16
: 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]
.Se o número calculado for menor que 1, atribua uma vNIC a cada fila.
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 que32
: 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 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 atribui16
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
é
16
, exceto no seguinte, em que 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 ativada
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
- usando virtIO ou um
driver personalizado, a contagem máxima de filas será
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 vNICs, 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 anic1
e três filas anic2
. Neste exemplo, não é possível atribuir quatro filas posteriormente anic2
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.Se você tiver uma VM N2 com 96 vCPUs e 2 vNICs, poderá atribuir até 32 filas a cada vNIC usando o driver virtIO ou até 16 filas usando o driver gVNIC. Se você ativar 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 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 viabilidade da configuração e, se for possível, o número de filas que o Google Cloud atribui às vNICs restantes com este processo:
Calcule a soma das filas das vNICs usando a atribuição de filas personalizada. Para uma VM de exemplo com 20 vCPUs e 6 vNICs, suponha que você atribua
nic0
5 filas,nic1
6 filas,nic2
4 filas e deixe o Google Cloud atribuir filas paranic3
,nic4
enic5
. Neste exemplo, a soma das filas personalizadas atribuídas é5+6+4 = 15
.Subtraia a soma das filas personalizadas atribuídas do número de vCPUs. Se a diferença for menor que o número de vNICs restantes a que o Google Cloud precisa atribuir filas, o Google Cloud vai retornar um erro, porque cada vNIC precisa ter pelo menos uma fila.
Continuando o exemplo com uma VM que tem 20 vCPUs e uma soma de
15
filas personalizadas atribuídas, o Google Cloud tem filas20-15 = 5
restantes para atribuir às outras vNICs (nic3
,nic4
enic5
).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)⌋
. Esse 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. O 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
, o Google Cloud atribui32
filas a cada vNIC restante. - Usando gVNIC, se o número calculado de filas para cada vNIC restante
for maior que o limite de
16
ou32
(dependendo da configuração da VM), o Google Cloud vai atribuir16
filas a cada vNIC restante.
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.
Nos exemplos de código abaixo, a VM é criada com o tipo de interface de rede
definido como GVNIC
e o desempenho de rede de Tier_1 por VM ativado. É possível usar esses exemplos de código
para especificar as contagens máximas de filas e a superlotação de filas
disponíveis para os tipos de máquina compatíveis.
gcloud
- Se você ainda não tiver uma rede VPC com uma sub-rede para cada interface vNIC que planeja configurar, crie-a.
- 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çãoqueue-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 ComputeZONE
: 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
- Se você ainda não tiver uma rede VPC com uma sub-rede para cada interface vNIC que planeja configurar, crie-a.
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âmetroqueue-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 ComputePROJECT_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 GiBDISK_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
- Se você ainda não tiver uma rede VPC com uma sub-rede para cada interface vNIC que planeja configurar, crie-a.
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 propriedadenetworkInterfaces
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á criadaVM_NAME
: nome da nova instância de computaçãoMACHINE_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 conectaQUEUE_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 VM tiver vNICs que usam contagens de filas personalizadas e não padrão, é possível mudar o tipo de máquina usando a Google Cloud CLI ou a API Compute Engine para atualizar as propriedades da instância. A conversão será bem-sucedida se a VM resultante for compatível com a mesma contagem de filas por vNIC da instância original. Para VMs que usam a interface VirtIO-Net e têm uma contagem de filas personalizada superior a 16 por vNIC, não é possível mudar o tipo de máquina para uma terceira geração ou posterior, porque elas usam apenas gVNIC. Em vez disso, é possível migrar sua VM para um tipo de máquina de terceira geração ou posterior, seguindo as instruções em Migrar a carga de trabalho para uma nova instância da computação.
A seguir
- Saiba mais sobre tipos de máquinas.
- Saiba mais sobre instâncias de máquina virtual.
- Crie e inicie uma instância de VM.
- Configure o desempenho de rede de Tier_1 por VM para uma instância de computação.
- Conclua o tutorial de início rápido Criar uma instância de VM do Linux no Compute Engine.
- Conclua o tutorial de início rápido Criar uma instância de VM do Windows Server no Compute Engine.