Comparar a largura de banda da rede mais alta para instâncias de VM


Neste documento, explicamos como testar o desempenho da rede Tier_1 por VM criando duas VMs e fazendo o streaming do tráfego para frente e para trás para observar o desempenho da rede. Para aproveitar esse recurso, crie sua VM com sistemas operacionais compatíveis com a NIC virtual do Google (gVNIC). O desempenho de rede por VM de Tier_1 requer tamanhos de VM maiores. Portanto, confirme se você tem uma cota de CPU suficiente para criar as VMs.

Antes de começar

  • Verifique se você está usando uma imagem pública compatível com gVNIC ou crie uma imagem personalizada no projeto.
  • Verifique se você criou regras de firewall de VPC para permitir a entrada na porta TCP:5001 ou outra de sua escolha para permitir o teste de desempenho iperf.
  • Use o iPerf versão 2, não a versão 3, para realizar a comparação.
  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Como configurar VMs para comparações

Crie duas máquinas vCPU n2-standard-64 com o desempenho de rede por VM de Tier_1 ativado e a configuração mais alta da unidade máxima de transmissão (MTU, na sigla em inglês). Isso dá às VMs até 75 Gbps de largura de banda de saída máxima (usando IPs internos).

gcloud

  1. Para criar uma imagem, use o comando gcloud compute images create.

      gcloud compute images create IMAGE_NAME \
       --project=PROJECT_ID \
       --source-image-family=SOURCE_IMAGE_FAMILY \
       --source-image-project=SOURCE_IMAGE_PROJECT \
       --guest-os-features=GVNIC
    

    Substitua:

    • PROJECT_ID: o nome do projeto.
    • IMAGE_NAME: o nome da imagem que você quer criar.
    • SOURCE_IMAGE_FAMILY: versão obrigatória de uma imagem pública. Para este teste, use ubuntu-2004-lts.
    • SOURCE_IMAGE_PROJECT: o nome do projeto que contém a imagem de origem. Para este teste, use ubuntu-os-cloud.

    Exemplo

    gcloud compute images create benchmark-image-test \
      --project=my-project \
      --source-image-family=ubuntu-2004-lts \
      --source-image-project=ubuntu-os-cloud \
      --guest-os-features=GVNIC
    
  2. Crie uma rede VPC de modo automático que use a configuração de MTU máxima:

      gcloud compute networks create NETWORK_NAME \
      --project=PROJECT_ID \
      --subnet-mode=AUTO --mtu=8896
    

    Substitua:

    • PROJECT_ID: o nome do projeto.
    • NETWORK_NAME: um nome para a rede.
  3. Crie duas instâncias idênticas:

      gcloud compute instances create \
          VM_NAME_1 VM_NAME_2 \
          --project=PROJECT_ID \
          --zone=ZONE \
          --machine-type=n2-standard-64 \
          --image=projects/PROJECT_NAME/global/images/IMAGE_NAME \
          --network=NETWORK_NAME \
          --network-interface=nic-type=GVNIC \
          --network-performance-configs=total-egress-bandwidth-tier=TIER_1
    

    Substitua:

    • VM_NAME_1 e VM_NAME_2: os nomes das instâncias de VM que você quer criar.
    • PROJECT_ID: o nome do projeto.
    • ZONE: a zona da VM. As VMs precisam residir na mesma zona.
    • PROJECT_NAME/global/images/IMAGE_NAME: nome do projeto e da imagem.
    • NETWORK_NAME: o nome da rede que você definiu com a configuração máxima de MTU.

Como executar a comparação

Suas duas VMs precisam estar na mesma zona e na mesma rede VPC. Durante a comparação, essas duas VMs realizam testes bidirecionais do caminho da rede VPC.

Verificar a configuração de MTU

Confirme se a rede da nuvem privada virtual (VPC) tem a configuração máxima de MTU definida usando ifconfig no SO convidado de uma das VMs.

  1. Conecte-se a uma das VMs.

  2. Na janela do terminal, execute o seguinte comando:

     /sbin/ifconfig | grep mtu
    

    A MTU informada precisa ser 8896.

     ens4: flags=4163  mtu 8896
     lo: flags=73  mtu 65536
    

Verificar a configuração da VM

Para confirmar se as redes virtuais têm a rede Tier_1 ativada, examine as propriedades da máquina virtual.

gcloud

Para ver as instâncias, use o comando gcloud compute instances describe.

gcloud compute instances describe VM_NAME_1 \
    --project=PROJECT_ID \
    --zone=ZONE \
    --format="text(networkPerformanceConfig)"
gcloud compute instances describe VM_NAME_2 \
    --project=PROJECT_ID \
    --zone=ZONE \
    --format="text(networkPerformanceConfig)"

Substitua:

  • VM_NAME_1: os nomes das instâncias de VM que você quer visualizar.
  • VM_NAME_2: os nomes das instâncias de VM que você quer visualizar.
  • PROJECT_ID: o nome do projeto.
  • ZONE: a zona da VM. As VMs precisam residir na mesma zona.

Na resposta, você verá o seguinte:

networkPerformanceConfig.totalEgressBandwidthTier: TIER_1

Use o iPerf para realizar a comparação em sistemas baseados em Debian

gcloud

  1. Se ainda não tiver feito isso, siga as etapas em Como configurar VMs para comparação.

  2. Quando as duas VMs estiverem em execução, use o SSH para se conectar a uma das VMs.

    gcloud compute ssh VM_NAME_1 \
      --project=PROJECT_ID
    

    Substitua:

    • VM_NAME_1: o nome da primeira VM.
    • PROJECT_ID: o nome do projeto.
  3. Na primeira VM, conclua as etapas a seguir:

    1. Instale iperf.

      sudo apt-get update && sudo apt-get install iperf
      
    2. Consiga o endereço IP interno dessa VM. Anote o endereço IP interno para uso posterior.

      ip a
      
    3. Inicie o servidor iPerf.

      iperf -s
      

      Isso inicia um servidor que detecta conexões para realizar a comparação. Deixe o servidor iPerf em execução durante o teste.

  4. Em um terminal de cliente separado, conecte-se à segunda VM usando SSH.

    gcloud compute ssh VM_NAME_2 \
       --project=PROJECT_ID
    

    Substitua:

    • VM_NAME_2: o nome da segunda VM.
    • PROJECT_ID: o nome do projeto.
  5. Na segunda VM, conclua as etapas a seguir:

    1. Instale o iPerf.

      sudo apt-get update && sudo apt-get install iperf
      
    2. Execute o teste iperf e especifique o endereço IP da primeira VM como destino.

      iperf -t 30 -c internal_ip_of_instance_1 -P 16
      

      Esse processo executa um teste de 30 segundos. Se o iPerf não conseguir acessar a outra VM, talvez seja necessário ajustar a rede ou as configurações de firewall nas VMs ou talvez no console do Google Cloud.

      Os resultados terão a aparência do exemplo a seguir: Ele mostra o limite de largura de banda de saída de 75 Gbps para n2-standard-64 com a rede Nível_1 ativada, excedendo o limite padrão de largura de banda de saída de 32 Gbps.

      ------------------------------------------------------------
      Client connecting to 10.128.0.10, TCP port 5001
      TCP window size: 1.59 MByte (default)
      ------------------------------------------------------------
      [ 12] local 10.128.0.11 port 57722 connected with 10.128.0.10 port 5001
      [ 11] local 10.128.0.11 port 57720 connected with 10.128.0.10 port 5001
      [ 16] local 10.128.0.11 port 57730 connected with 10.128.0.10 port 5001
      [  6] local 10.128.0.11 port 57710 connected with 10.128.0.10 port 5001
      [ 13] local 10.128.0.11 port 57724 connected with 10.128.0.10 port 5001
      [  8] local 10.128.0.11 port 57712 connected with 10.128.0.10 port 5001
      [  9] local 10.128.0.11 port 57716 connected with 10.128.0.10 port 5001
      [ 14] local 10.128.0.11 port 57726 connected with 10.128.0.10 port 5001
      [ 15] local 10.128.0.11 port 57728 connected with 10.128.0.10 port 5001
      [ 10] local 10.128.0.11 port 57718 connected with 10.128.0.10 port 5001
      [  4] local 10.128.0.11 port 57706 connected with 10.128.0.10 port 5001
      [  5] local 10.128.0.11 port 57708 connected with 10.128.0.10 port 5001
      [  3] local 10.128.0.11 port 57704 connected with 10.128.0.10 port 5001
      [ 17] local 10.128.0.11 port 57732 connected with 10.128.0.10 port 5001
      [  7] local 10.128.0.11 port 57714 connected with 10.128.0.10 port 5001
      [ 18] local 10.128.0.11 port 57734 connected with 10.128.0.10 port 5001
      [ ID] Interval       Transfer     Bandwidth
      [ 12]  0.0-30.0 sec  7.63 GBytes  2.19 Gbits/sec
      [ 11]  0.0-30.0 sec  17.7 GBytes  5.07 Gbits/sec
      [ 16]  0.0-30.0 sec  9.15 GBytes  2.62 Gbits/sec
      [  6]  0.0-30.0 sec  43.8 GBytes  12.6 Gbits/sec
      [ 13]  0.0-30.0 sec  23.6 GBytes  6.76 Gbits/sec
      [  8]  0.0-30.0 sec  13.3 GBytes  3.80 Gbits/sec
      [  9]  0.0-30.0 sec  9.29 GBytes  2.66 Gbits/sec
      [ 14]  0.0-30.0 sec  19.6 GBytes  5.62 Gbits/sec
      [ 15]  0.0-30.0 sec  12.5 GBytes  3.58 Gbits/sec
      [ 10]  0.0-30.0 sec  11.1 GBytes  3.19 Gbits/sec
      [  4]  0.0-30.0 sec  19.0 GBytes  5.43 Gbits/sec
      [  5]  0.0-30.0 sec  7.32 GBytes  2.10 Gbits/sec
      [  3]  0.0-30.0 sec  8.78 GBytes  2.51 Gbits/sec
      [ 17]  0.0-30.0 sec  17.5 GBytes  5.02 Gbits/sec
      [  7]  0.0-30.0 sec  33.4 GBytes  9.57 Gbits/sec
      [ 18]  0.0-30.0 sec  7.64 GBytes  2.19 Gbits/sec
      [SUM]  0.0-30.0 sec   261 GBytes  74.9 Gbits/sec
      

Remover recursos após o teste de comparativo de mercado

Remova os recursos que você criou durante o teste de comparativo de mercado para evitar cobranças pela imagem e por VMs adicionais.

gcloud

  1. Use o comando gcloud compute instances delete para remover as instâncias criadas para testes de comparação.

    gcloud compute instances delete \
      VM_NAME_1 VM_NAME_2 \
       --project=PROJECT_ID \
       --zone=ZONE
    

    Substitua:

    • VM_NAME_1, VM_NAME_2: os nomes das duas instâncias de VM que você quer excluir.
    • PROJECT_ID: o nome do projeto.
    • ZONE: a zona da VM. As duas VMs precisam estar na mesma zona.
  2. Use o comando gcloud compute networks delete para remover a rede criada para testes de comparação.

    gcloud compute networks delete NETWORK_NAME  \
       --project=PROJECT_ID
    

    Substitua:

    • NETWORK_NAME: o nome da rede que você quer excluir.
    • PROJECT_ID: o nome do projeto.
  3. Use o comando gcloud compute images delete para remover a imagem criada para testes de comparação.

     gcloud compute images delete IMAGE_NAME  \
        --project=PROJECT_ID
    

    Substitua:

    • IMAGE_NAME: o nome da imagem que você quer excluir.
    • PROJECT_ID: o nome do projeto.

A seguir