Como comparar instâncias de VM com largura de banda maior

Este documento explica como testar as opções de desempenho da rede de largura de banda mais alta ao criar duas VMs e transmitir o tráfego em ambas as direções para acompanhar o desempenho da rede. Para aproveitar esse recurso, crie sua VM com sistemas operacionais compatíveis com a NIC virtual do Google (gVNIC). As opções de desempenho de rede também exigem tamanhos maiores de VM. Confirme se você tem cota de CPU suficiente.

Antes de começar

Como configurar VMs para comparações

Crie duas máquinas vCPU n2-standard-64 com desempenho de rede TIER_1 ativado. Isso dá às VMs até 75 Gbps de desempenho máximo de saída (usando IPs internos).

Use uma imagem compatível com a gVNIC criando uma imagem no projeto com base nas imagens de amostra fornecidas. Além disso, 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.

gcloud

  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 my_image_name \
      --project=my_project \
      --source-image-family=ubuntu-2004-lts \
      --source-image-project=ubuntu-os-cloud \
      --guest-os-features=GVNIC

Crie duas instâncias idênticas:

      gcloud beta 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-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.

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.

Analise as propriedades da máquina virtual para verificar se as máquinas virtuais estão com o desempenho de rede ativado.

gcloud beta compute instances describe VM_NAME_1 \
    --project=PROJECT_ID \
    --zone=ZONE

Na resposta, você verá o seguinte:

networkPerformanceConfig:
  totalEgressBandwidthTier: TIER_1

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

  1. Crie duas VMs compatíveis com as velocidades de largura de banda necessárias.

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

    gcloud compute ssh VM_NAME \
        --project=PROJECT_ID
    

    Substitua:

    • VM_NAME: o nome da primeira VM
    • PROJECT_ID: ID 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 para acompanhar.

      ip a
      
    3. Inicie o servidor iPerf.

      iperf -s
      

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

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

    gcloud compute ssh VM_NAME \
       --project=PROJECT_ID
    

    Substitua:

    • VM_NAME: o nome da segunda VM
    • PROJECT_ID: ID 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 Cloud.

      Os resultados terão a aparência do exemplo a seguir: A largura de banda de saída padrão é 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
      

A seguir