Compare el ancho de banda de red más alto para instancias de VM


Este documento explica cómo probar el rendimiento de red por VM Tier_1 creando dos VM y transmitiendo el tráfico de un lado a otro para observar el rendimiento de la red. Para aprovechar esta característica, debe crear su máquina virtual con sistemas operativos que admitan la NIC virtual de Google (gVNIC) . El rendimiento de red por VM Tier_1 requiere tamaños de VM más grandes, así que confirme que tiene suficiente cuota de CPU para crear las VM.

Antes de comenzar

  • Asegúrese de estar utilizando una imagen pública que admita gVNIC o cree una imagen personalizada en su proyecto.
  • Verifique que haya creado reglas de firewall de VPC para permitir la entrada en el puerto TCP:5001, u otro puerto de su elección, para permitir las pruebas de rendimiento iperf .
  • Utilice iPerf versión 2, no la versión 3, para realizar la evaluación comparativa.
  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

      Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .

Configuración de máquinas virtuales para evaluación comparativa

Cree dos máquinas vCPU n2-standard-64 con el rendimiento de red por VM Tier_1 habilitado y la configuración de unidad de transmisión máxima (MTU) más alta. Esto proporciona a sus máquinas virtuales hasta 75 Gbps de ancho de banda de salida máximo (utilizando IP internas).

nube de gcloud

  1. Para crear una imagen, usa el comando de creación de imágenes de gcloud Compute .

      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
    

    Reemplace lo siguiente:

    • PROJECT_ID : el nombre de su proyecto.
    • IMAGE_NAME : el nombre de la imagen que deseas crear.
    • SOURCE_IMAGE_FAMILY : versión requerida de una imagen pública. Para esta prueba, utilice ubuntu-2004-lts .
    • SOURCE_IMAGE_PROJECT : el nombre del proyecto que contiene la imagen de origen. Para esta prueba, utilice ubuntu-os-cloud .

    Ejemplo

    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. Cree una red VPC en modo automático que utilice la configuración de MTU máxima:

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

    Reemplace lo siguiente:

    • PROJECT_ID : el nombre de su proyecto.
    • NETWORK_NAME : un nombre para la red.
  3. Crea dos instancias 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
    

    Reemplace lo siguiente:

    • VM_NAME_1 , VM_NAME_2 : los nombres de las instancias de VM que desea crear.
    • PROJECT_ID : el nombre de tu proyecto.
    • ZONE : la zona de tu VM. Ambas máquinas virtuales deben residir en la misma zona.
    • PROJECT_NAME /global/images/ IMAGE_NAME : el nombre de su proyecto y el nombre de la imagen.
    • NETWORK_NAME : el nombre de la red que configuró con la configuración máxima de MTU.

Realización del punto de referencia

Sus dos VM deben residir en la misma zona y en la misma red de VPC . Durante la prueba, estas dos máquinas virtuales realizan pruebas bidireccionales de la ruta de la red VPC.

Verifique la configuración de MTU

Confirme que la red de nube privada virtual (VPC) tenga configurada la configuración de MTU máxima mediante ifconfig en el sistema operativo invitado de una de las máquinas virtuales.

  1. Conéctese a una de las máquinas virtuales .

  2. En la ventana de la terminal, ejecute el siguiente comando:

     /sbin/ifconfig | grep mtu
    

    La MTU informada debe ser 8896.

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

Verificar la configuración de la máquina virtual

Confirme que las máquinas virtuales tengan habilitadas las redes de nivel 1 examinando las propiedades de la máquina virtual.

nube de gcloud

Para ver las instancias, usa el 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)"

Reemplace lo siguiente:

  • VM_NAME_1 : los nombres de la instancia de VM que desea ver.
  • VM_NAME_2 : los nombres de la instancia de VM que desea ver.
  • PROJECT_ID : el nombre de tu proyecto.
  • ZONE : la zona de tu VM. Ambas máquinas virtuales deben residir en la misma zona.

En la respuesta deberías ver lo siguiente:

networkPerformanceConfig.totalEgressBandwidthTier: TIER_1

Utilice iPerf para realizar pruebas comparativas en sistemas basados ​​en Debian

nube de gcloud

  1. Si aún no lo ha hecho, complete los pasos en Configuración de máquinas virtuales para evaluación comparativa .

  2. Después de que ambas máquinas virtuales se estén ejecutando, use SSH para conectarse a una de las máquinas virtuales.

    gcloud compute ssh VM_NAME_1 \
      --project=PROJECT_ID
    

    Reemplace lo siguiente:

    • VM_NAME_1 : el nombre de su primera VM.
    • PROJECT_ID : el nombre de tu proyecto.
  3. En la primera máquina virtual, complete los siguientes pasos:

    1. Instalar iperf .

      sudo apt-get update && sudo apt-get install iperf
      
    2. Obtenga la dirección IP interna de esta VM. Tome nota de la dirección IP interna para su uso posterior.

      ip a
      
    3. Inicie el servidor iPerf.

      iperf -s
      

      Esto inicia un servidor que escucha las conexiones para realizar la prueba comparativa. Deje el servidor iPerf ejecutándose mientras dure la prueba.

  4. En una terminal de cliente independiente, conéctese a la segunda máquina virtual mediante SSH.

    gcloud compute ssh VM_NAME_2 \
       --project=PROJECT_ID
    

    Reemplace lo siguiente:

    • VM_NAME_2 : el nombre de su segunda VM.
    • PROJECT_ID : el nombre de tu proyecto.
  5. En la segunda máquina virtual, complete los siguientes pasos:

    1. Instale iPerf.

      sudo apt-get update && sudo apt-get install iperf
      
    2. Ejecute la prueba iperf y especifique la dirección IP de la primera máquina virtual como destino.

      iperf -t 30 -c internal_ip_of_instance_1 -P 16
      

      Esto ejecuta una prueba de 30 segundos. Si iPerf no puede comunicarse con la otra máquina virtual, es posible que deba ajustar la configuración de red o firewall en las máquinas virtuales o quizás en la consola de Google Cloud.

      Sus resultados deberían parecerse al siguiente ejemplo. Muestra el límite de ancho de banda de salida de 75 Gbps para n2-standard-64 con la red Tier_1 habilitada, superando el límite de ancho de banda de salida predeterminado 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
      

Eliminar recursos después de las pruebas comparativas

Elimine los recursos que creó durante las pruebas comparativas para evitar cargos por la imagen y las máquinas virtuales adicionales.

nube de gcloud

  1. Usa el comando gcloud compute instances delete para eliminar las instancias que creaste para las pruebas comparativas.

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

    Reemplace lo siguiente:

    • VM_NAME_1 , VM_NAME_2 : los nombres de las dos instancias de VM que desea eliminar.
    • PROJECT_ID : el nombre de tu proyecto.
    • ZONE : la zona de tu VM. Ambas máquinas virtuales deben estar en la misma zona.
  2. Usa el comando gcloud compute networks delete para eliminar la red que creaste para las pruebas comparativas.

    gcloud compute networks delete NETWORK_NAME  \
       --project=PROJECT_ID
    

    Reemplace lo siguiente:

    • NETWORK_NAME : el nombre de la red que desea eliminar.
    • PROJECT_ID : el nombre de tu proyecto.
  3. Usa el comando gcloud compute images delete para eliminar la imagen que creaste para las pruebas comparativas.

     gcloud compute images delete IMAGE_NAME  \
        --project=PROJECT_ID
    

    Reemplace lo siguiente:

    • IMAGE_NAME : el nombre de la imagen que deseas eliminar.
    • PROJECT_ID : el nombre de tu proyecto.

¿Qué sigue?