Largura de banda da rede (original) (raw)

Google Cloud tem em conta a largura de banda por instância de computação e não por interface de rede virtual (vNIC) ou endereço IP. O tipo de máquina de uma instância define a respetiva taxa de saída máxima possível. No entanto, só pode atingir essa 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 no planeamento das suas implementações. Categoriza a largura de banda através de duas dimensões:

Todas as informações nesta página aplicam-se à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.

Configurações que afetam a largura de banda da rede

Nem as interfaces de rede virtuais (vNICs) adicionais nem os 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 23 Gbps de largura de banda de saída total. Se configurar a VM C3 com duas vNICs, a VM continua limitada a 23 Gbps de largura de banda de saída total, e não a 23 Gbps de largura de banda por vNIC.

As secções seguintes descrevem como outras configurações de instâncias de computação podem afetar a largura de banda da rede.

Use o desempenho de rede de nível 1 por VM

Para obter a largura de banda de entrada e saída mais elevada possível,configure a rede de nível 1para a sua instância de computação.

Interfaces de rede dinâmicas

As interfaces de rede dinâmicas usam a largura de banda da vNIC principal. Não existe isolamento de tráfego numa vNIC principal. O tráfego de rede de uma NIC dinâmica pode privar as outras NICs dinâmicas associadas à mesma vNIC principal. Para evitar este conflito, pode usar o controlo de tráfego (TC) do Linux para criar políticas de modelação de tráfego específicas da aplicação. Estas políticas ajudam a implementar a equidade ou determinados tipos de prioridade. Para a priorização, mapeia o tráfego (por exemplo, para NICs dinâmicos) para uma classe de tráfego e, em seguida, mapeia essa classe de tráfego para uma qualidade de serviço. Para ver um exemplo desta abordagem, consulte o artigo Modelagem de tráfego com o Red Hat.

As NICs dinâmicas não são suportadas para instâncias do Compute Engine que executam um SO Windows.

Computação de HPC com RDMA na nuvem

A largura de banda é necessária para todas as três fases de uma tarefa de computação de alto desempenho (HPC): carregar, calcular e armazenar. Durante as fases de carregamento e armazenamento, as aplicações usam normalmente o TCP para comunicação e o endereço de memória direto remoto (RDMA) para as fases de computação. As instâncias H4D que usam o GVNIC para o tráfego TCP oferecem uma largura de banda de rede de até 200 Gbps. Se também configurar uma instância H4D para usar o RDMA na nuvem, a largura de banda da rede é partilhada entre as interfaces de rede configuradas.

A atribuição de largura de banda da rede entre o tráfego RDMA na nuvem e o tráfego TCP é feita dinamicamente. Em vez de limitar o tráfego de RDMA na nuvem e TCP a 100 Gbps de largura de banda cada, a interface de rede GVNIC pode usar toda a largura de banda disponível quando a interface de rede RDMA na nuvem não está a ser usada. Da mesma forma, a interface de rede RDMA na nuvem pode usar toda a largura de banda disponível quando a interface de rede GVNIC não está a ser usada. Quando ambos os tipos de interface de rede estão em utilização, o tráfego RDMA na nuvem tem prioridade sobre o tráfego TCP porque é mais sensível ao desempenho.

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

Limites de largura de banda de saída

Encaminhamento numarede 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 de nível 1 está ativada. VMs N2, N2D, C2, C2D, M3 e C4A com suporte de rede Tier_1 limites de largura de banda de saída até 100 Gbps. As VMs H3 suportam limites de largura de banda de saída de VM para VM até 200 Gbps. As instâncias H4D suportam uma largura de banda de saída de VM para VM de até 200 Gbps para o Cloud RDMA e o gVNIC combinados. As instâncias X4, M4, A2 e G2 suportam limites de largura de banda de saída até 100 Gbps. As instâncias G4 suportam limites de largura de banda de saída até 400 Gbps. As instâncias A4X suportam limites de largura de banda de saída até 2000 Gbps. As instâncias A4 e A3 suportam limites de largura de banda de saída até 3600 Gbps. As instâncias C4, C4D, C3, C3D e Z3 suportam limites de largura de banda de saída de até 200 Gbps com a rede de Nível 1. Para outros fatores, definições e cenários, consulte o artigoSaída para destinos encaminháveis numa rede VPC.
Encaminhamento forade uma rede de 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 de Nível 1 está ativada. Exceto para VMs H3, a saída máxima possível de uma instância de envio para um destino fora da respetiva rede da 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 ressalvas, consulte o artigoSaída para destinos fora de uma rede da VPC.

Limites de largura de banda de entrada

Encaminhamento numarede VPC Geralmente, as taxas de entrada são semelhantes às taxas de saída para um tipo de máquina. Para obter a largura da banda de entrada mais elevada possível,ative a rede de nível 1. O tamanho da sua instância de computação, a capacidade da NIC do servidor, o tráfego que entra noutras VMs convidadas em execução no mesmo hardware do anfitrião, a configuração de rede do SO 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 numa rede de VPC. Para outros fatores, definições e cenários, consulte o artigoEntrada para destinos encaminháveis numa rede de VPC.
Encaminhamento forade uma rede de VPC Google Cloud protege cada instância de computação limitando o tráfego de entrada encaminhado 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 várias NICs físicas, como a A3, o limite é a primeira das seguintes taxas encontradas: 1 800 000 pps (pacotes por segundo) por NIC físico 30 Gbps por NIC física Para outros fatores, definições e cenários, consulte o artigoEntrada para destinos fora de uma rede VPC.

Largura de banda de saída

Google Cloud limita a largura de banda de saída (egress) através de taxas de saída máximas por instância. Estas taxas baseiam-se no tipo de máquina da instância de computação que está a enviar o pacote e se o destino do pacote é acessível através de rotas numa rede da VPC ou rotas fora de uma rede da 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 do Hyperdisk e do disco persistente ligados à 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 existem algumas diferenças e exceções, consoante a série de máquinas. A tabela seguinte mostra o intervalo dos limites máximos da largura de banda de saída para o tráfego encaminhado numa rede VPC.

A tabela seguinte resume a largura de banda de saída máxima para cada série de máquinas. Pode encontrar a largura de banda de saída máxima por instância para cada tipo de máquina indicado na página da respetiva família de máquinas específica (através dos links para cada série de máquinas na tabela).

Limite de saída por instância máximo
Série de máquinas Standard Redes de Nível 1
C4 e C4D 100 Gbps 200 Gbps
C4A 50 Gbps 100 Gbps
C3 e C3D 100 Gbps 200 Gbps
C2 e C2D 32 Gbps 100 Gbps
E2 16 Gbps N/A
E2 com núcleo partilhado 2 Gbps N/A
H4D e H3 200 Gbps N/A
M4 100 Gbps N/A
M3 32 Gbps 100 Gbps
M2 32 Gbps no CPU Intel Cascade Lake ou posterior16 Gbps noutras plataformas de CPU N/A
M1 32 Gbps N/A
N4,N4A (Pré-visualização) e N4D 50 Gbps N/A
N2 e N2D 32 Gbps 100 Gbps
N1 (excluindo VMs com 1 vCPU) 32 Gbps no CPU Intel Skylake e posterior16 Gbps em plataformas de CPU anteriores N/A
Tipos de máquinas N1 com 1 vCPU 2 Gbps N/A
N1 com núcleo partilhado (f1-micro e g1-small) 1 Gbps N/A
T2A e T2D 32 Gbps N/A
X4 100 Gbps N/A
Z3 100 Gbps 200 Gbps

Para obter informações sobre a largura de banda da rede para a série de máquinas otimizadas para aceleradores, consulte o artigoRedes e máquinas com GPU.

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:

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

Saída para destinos encaminháveis numa rede VPC

Do ponto de vista de uma instância de envio e para endereços IP de destino acessíveis através de rotas numa rede VPC, Google Cloud limita o tráfego de saída através destas regras:

Os destinos encaminháveis numa rede VPC incluem todos os seguintes destinos, cada um dos quais é acessível a partir da perspetiva da instância de envio através de um caminho cujo próximo salto não é o gateway de Internet predefinido:

A lista seguinte classifica o tráfego de instâncias de envio para destinos internos, da largura de banda mais elevada possível para a mais baixa:

Saída para destinos fora de uma rede da VPC

Do ponto de vista 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 à taxa que for atingida primeiro entre as seguintes:

Os destinos fora de uma rede VPC incluem todos os seguintes destinos, cada um dos quais é acessível por uma rota na rede VPC da instância de envio cujo próximo salto é o gateway de Internet predefinido:

Para ver detalhes sobre que Google Cloud recursos usam que tipos de endereços IP externos, consulteEndereços IP externos.

Largura de banda de entrada

OGoogle Cloud processa a largura de banda de entrada (ingress) consoante a forma como o pacote recebido é encaminhado para uma instância de computação de receção.

Entrada para destinos encaminháveis numa rede VPC

Uma instância de receção pode processar tantos pacotes recebidos quanto o seu tipo de máquina, sistema operativo e outras condições de rede permitirem.O Google Cloud Google Cloud não implementa nenhuma restrição de largura de banda intencional nos pacotes recebidos entregues a uma instância se o pacote recebido for entregue através de rotas numa rede VPC:

Os destinos dos pacotes encaminhados numa rede da VPC incluem:

Entrada para destinos fora de uma rede da VPC

Google Cloud Implementa os seguintes limites de largura de banda para pacotes recebidos entregues a uma instância de receção através de rotas fora de uma rede VPC. Quando o equilíbrio de carga está envolvido, os limites de largura de banda são aplicados individualmente a cada instância de receção.

Para séries de máquinas que não suportam várias NICs físicas, 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:

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

Os destinos dos pacotes encaminhados através de rotas fora de uma rede VPC incluem:

Use frames jumbo para maximizar a largura de banda da rede

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

Os valores de MTU mais elevados aumentam o tamanho dos pacotes e reduzem a sobrecarga do cabeçalho do pacote, o que aumenta o débito de dados da carga útil.

Pode usar frames jumbo com a versão 1.3 ou posterior do controlador gVNIC em instâncias de VM ou com o controlador IDPF em instâncias bare metal. Nem todas as Google Cloud imagens públicas incluem estes controladores. Para mais informações sobre o suporte do sistema operativo para frames jumbo, consulte o separador Funcionalidades de rede na página Detalhes do sistema operativo.

Se estiver a usar uma imagem do SO que não tenha suporte total para jumbo frames, pode instalar manualmente a versão v1.3.0 ou posterior do controlador gVNIC. A Google recomenda que instale a versão do controlador gVNIC marcada com Latest para beneficiar de funcionalidades adicionais e correções de erros. Pode transferir os controladores gVNIC doGitHub.

Para atualizar manualmente a versão do controlador gVNIC no SO convidado, consulte o artigoUse em sistemas operativos não suportados.

Jumbo frames e máquinas com GPU

Para tipos de máquinas com GPU, use as definições de MTU recomendadas para frames Jumbo. Para mais informações, consulte o artigo Definições de MTU recomendadas para frames Jumbo.

Filas de receção e transmissão

A cada NIC ou vNIC de uma instância de computação é atribuído um número de filas de receção e transmissão para processar pacotes da rede.

Atribuição de fila predefinida

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

Instâncias bare metal

Para instâncias bare metal, existe apenas uma NIC, pelo que a quantidade 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 seguintes configurações usam um número fixo de filas:

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

Para concluir o cálculo da quantidade de filas predefinida:

  1. Se o número calculado for inferior a 1, atribua uma fila a cada vNIC.
  2. Determine se o número calculado é superior ao número máximo de filas por vNIC, que é 16. Se o número calculado for superior a 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 controlador personalizado

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

  1. Se o número calculado for inferior a 1, atribua uma fila a cada vNIC.
  2. Determine se o número calculado é superior ao número máximo de filas por vNIC, que é 32. Se o número calculado for superior a 32, ignore o número calculado e atribua 32 filas a cada vNIC.

Instâncias H4D com RDMA na nuvem

Para instâncias H4D que usam o RDMA na nuvem, cada anfitrião físico executa uma única instância de computação. Assim, a instância recebe todos os pares de filas disponíveis. As instâncias H4D têm 16 filas para a interface de rede gVNIC e 16 filas para a interface de rede IRDMA.

Exemplos

Os exemplos seguintes mostram como calcular o número predefinido de filas para uma instância de VM:

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

As filas são contabilizadas quando usa a interface de rede dinâmica

Se usar interfaces de rede dinâmicas com as suas interfaces de rede, as contagens de filas não são alteradas. Uma NIC dinâmica não tem as suas próprias filas de receção e transmissão; usa as mesmas filas que a vNIC principal.

Atribuição de filas personalizada para instâncias de VM

Em vez da atribuição de filas predefinida, pode atribuir uma quantidade de filas personalizada (total de RX e TX) a cada vNIC quando cria uma nova instância de computação através da API Compute Engine.

O número de filas personalizadas que especificar tem de cumprir as seguintes regras:

Pode subscrever em excesso a contagem de filas personalizadas para as suas vNICs. Por outras palavras, pode ter uma soma das contagens de filas atribuídas a todas as NICs da instância de VM que seja superior ao número de vCPUs da instância. Para exceder o número de filas personalizadas, a instância de VM tem de cumprir as seguintes condições:

Com a subscrição excessiva da fila, a contagem máxima de filas para a instância de VM é 16 vezes o número de NICs. Assim, se tiver 6 NICs configurados para uma instância com 30 vCPUs, pode configurar um máximo de (16 * 6) ou 96 filas personalizadas para a sua instância.

Exemplos

Também é possível atribuir uma quantidade de filas personalizada apenas a algumas NICs, o que permite que o sistemaGoogle Cloud atribua filas às NICs restantes. O número de filas que pode atribuir por vNIC continua sujeito às regras mencionadas anteriormente. Pode modelar a viabilidade da sua configuração e, se a configuração for possível, o número de filas que Google Cloud atribui às restantes vNICs com este processo:

  1. Calcular a soma das filas para as vNICs através da atribuição de filas personalizada. Para uma VM de exemplo com 20 vCPUs e 6 vNICs, suponha que atribui nic0 5 filas, nic1 6 filas, nic2 4 filas e permite que o Google Cloud atribua filas para nic3, nic4 e nic5. Neste exemplo, a soma das filas atribuídas personalizadas é 5+6+4 = 15.
  2. Subtraia a soma das filas atribuídas personalizadamente ao número de vCPUs. Se a diferença for inferior ao número de vNICs restantes para os quaisGoogle Cloud tem de atribuir filas Google Cloud , é devolvido um erro porque cada vNIC tem de ter, pelo menos, uma fila.
    Continuando o exemplo com uma VM que tem 20 vCPUs e uma soma de 15filas atribuídas personalizadas Google Cloud ,tem 20-15 = 5 filas restantes para atribuir às vNICs restantes (nic3, nic4, nic5).
  3. Divida a diferença do passo anterior pelo número de vNICs restantes e rejeite qualquer resto ⌊(number of vCPUs - sum of assigned queues)/(number of remaining vNICs)⌋. Este cálculo resulta sempre num número inteiro (não numa fração) que é, pelo menos, igual a um devido à restrição explicada no passo 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 superior ao número máximo de filas por vNIC. O número máximo de filas por vNIC depende do tipo de controlador:

Configure contagens de filas personalizadas

Para criar uma instância de computação que use uma contagem de filas personalizada para uma ou mais NICs ou vNICs, conclua os passos seguintes.

Nos exemplos de código seguintes, a VM é criada com o tipo de interface de rede definido como GVNIC e o desempenho de rede de nível 1 por VM ativado. Pode usar estes exemplos de código para especificar as contagens máximas de filas e a subscrição excessiva de filas que estão disponíveis para os tipos de máquinas suportados.

gcloud

  1. Se ainda não tiver umarede VPCcom uma sub-rede para cada interface vNIC que planeia configurar, crie-as.

  2. Use o comandogcloud compute instances createpara criar a instância de computação. Repita a flag --network-interface para cada vNIC que 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 o seguinte:

Terraform

  1. Se ainda não tiver uma rede VPC com uma sub-rede para cada interface vNIC que planeia configurar, crie-as.
  2. Crie uma instância de computação com contagens de filas específicas para vNICs através do recurso google_compute_instance. Repita o parâmetro --network-interface para cada vNIC que 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 o seguinte:

REST

  1. Se ainda não tiver umarede VPCcom uma sub-rede para cada interface vNIC que planeia configurar, crie-as.
  2. Crie uma instância de computação com contagens de filas específicas para NICs através do 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 no qual criar a instância de computação
    • ZONE: zona na qual criar a instância de computação
    • VM_NAME:name da nova instância de computação
    • MACHINE_TYPE: tipo de máquina,predefinido oupersonalizado, para a nova instância de computação. Para subscrever em excesso a quantidade de filas, o tipo de máquina tem de suportar a rede gVNIC e de Nível 1.
    • SUBNET_*: o nome da sub-rede à qual a interface de rede se liga
    • QUEUE_COUNT: número de filas para a vNIC, sujeito às regras abordadas na secçãoAlocação de filas personalizada.

Atribuições de filas e alteração do tipo de máquina

As instâncias de computação são criadas com uma atribuição de fila predefinida ou pode atribuir uma quantidade de filas personalizada a cada placa de interface de rede virtual (vNIC) quando cria uma nova instância de computação através da API Compute Engine. As atribuições de filas de vNIC predefinidas ou personalizadas só são definidas quando cria uma instância de computação. Se a sua instância tiver vNICs que usam contagens de filas predefinidas, pode alterar o respetivo tipo de máquina. Se o tipo de máquina para o qual está a mudar tiver um número diferente de vCPUs, as quantidades predefinidas de filas da sua instância são recalculadas com base no novo tipo de máquina.

Se a sua VM tiver vNICs que usam contagens de filas personalizadas e não predefinidas, pode alterar o tipo de máquina através da CLI do Google Cloud ou da API Compute Engine paraatualizar as propriedades da instância. A conversão é bem-sucedida se a VM resultante suportar a mesma quantidade de filas por vNIC que a 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 pode alterar o tipo de máquina para um tipo de máquina de terceira geração ou posterior, porque usam apenas gVNIC. Em alternativa, pode migrar a sua VM para um tipo de máquina de terceira geração ou posterior seguindo as instruções em Mova a sua carga de trabalho para uma nova instância de computação.

O que se segue?