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


En este documento, se explica cómo probar el rendimiento de redes Tier_1 por VM mediante la creación de dos VMs y la transmisión continua de tráfico para observar el rendimiento de la red. Para aprovechar esta función, debes crear tu VM con sistemas operativos que admitan la NIC virtual de Google (gVNIC). El rendimiento de redes Tier_1 por VM requiere tamaños de VM más grandes, por lo que debes confirmar que tienes suficiente cuota de CPU para crear las VM.

Antes de comenzar

  • Asegúrate de usar una imagen pública compatible con gVNIC o crea una imagen personalizada en tu proyecto.
  • Verifica que hayas creado reglas de firewall de VPC para permitir la entrada en el puerto TCP:5001, o bien otro puerto que elijas, a fin de permitir las pruebas de rendimiento de iperf.
  • Usa la versión 2 de iPerf, no la versión 3, para realizar las comparativas.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña para saber cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    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.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Configura VM para comparativas

Crea dos máquinas CPU virtuales n2-standard-64 con el rendimiento de redes Tier_1 por VM habilitado y la configuración de la unidad de transmisión máxima (MTU) más alta. Esto les brinda a tus VM hasta 75 Gbps de ancho de banda de salida máximo (con IP internas).

gcloud

  1. Para crear una imagen, usa el comando de creación de imágenes de procesamiento de 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
    

    Reemplaza lo siguiente:

    • PROJECT_ID: nombre del proyecto.
    • IMAGE_NAME es el nombre de la imagen que deseas crear.
    • SOURCE_IMAGE_FAMILY: es la versión requerida de una imagen pública. Para esta prueba, usa ubuntu-2004-lts.
    • SOURCE_IMAGE_PROJECT: es el nombre del proyecto que contiene la imagen de origen. Para esta prueba, usa 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. Crea una red de VPC en modo automático que use la configuración de MTU máxima:

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

    Reemplaza lo siguiente:

    • PROJECT_ID: nombre del proyecto.
    • NETWORK_NAME es 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
    

    Reemplaza lo siguiente:

    • VM_NAME_1, VM_NAME_2: son los nombres de las instancias de VM que deseas crear.
    • PROJECT_ID: Es el nombre de tu proyecto.
    • ZONE: Es la zona de la VM. Ambas VMs deben estar en la misma zona.
    • PROJECT_NAME/global/images/IMAGE_NAME: Es el nombre del proyecto y el nombre de la imagen.
    • NETWORK_NAME: el nombre de la red que configuraste con la configuración de MTU máxima.

Realiza la comparativa

Tus dos VMs deben estar en la misma zona y en la misma red de VPC. Durante la comparativa, estas dos VMs realizan pruebas bidireccionales de la ruta de red de VPC.

Verifica la configuración de la MTU

Confirma que la red de nube privada virtual (VPC) tenga la configuración de MTU máxima configurada mediante ifconfig en el SO invitado de una de las VM.

  1. Conéctate a una de las VM.

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

     /sbin/ifconfig | grep mtu
    

    La MTU informada debe ser 8896.

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

Verifica la configuración de la VM

Examina las propiedades de la máquina virtual para confirmar que las máquinas virtuales tengan redes Tier_1 habilitadas.

gcloud

Para ver la instancia, usa el comando de descripción de instancias de procesamiento de gcloud.

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)"

Reemplaza lo siguiente:

  • VM_NAME_1: Son los nombres de la instancia de VM que deseas ver.
  • VM_NAME_2: Son los nombres de la instancia de VM que deseas ver.
  • PROJECT_ID: Es el nombre de tu proyecto.
  • ZONE: Es la zona de la VM. Ambas VM deben estar en la misma zona.

En la respuesta, deberías ver lo siguiente:

networkPerformanceConfig.totalEgressBandwidthTier: TIER_1

Usa iPerf para realizar comparativas en sistemas basados en Debian

gcloud

  1. Si aún no lo hiciste, completa los pasos de la página Configura VMs para comparativas.

  2. Una vez que ambas VMs estén en ejecución, usa SSH para conectarte a una de las VMs.

    gcloud compute ssh VM_NAME_1 \
      --project=PROJECT_ID
    

    Reemplaza lo siguiente:

    • VM_NAME_1: Es el nombre de tu primera VM
    • PROJECT_ID: Es el nombre de tu proyecto.
  3. En la primera VM, completa los siguientes pasos:

    1. Instala iperf.

      sudo apt-get update && sudo apt-get install iperf
      
    2. Obtén la dirección IP interna de esta VM. Toma nota de la dirección IP interna para usarla más adelante.

      ip a
      
    3. Inicia el servidor de iPerf.

      iperf -s
      

      Esto inicia un servidor que escucha las conexiones para realizar la comparativa. Deja el servidor iPerf en ejecución durante el tiempo que finalice la prueba.

  4. En otra terminal del cliente, conéctate a la segunda VM con SSH.

    gcloud compute ssh VM_NAME_2 \
       --project=PROJECT_ID
    

    Reemplaza lo siguiente:

    • VM_NAME_2 por el nombre de tu segunda VM
    • PROJECT_ID: Es el nombre de tu proyecto.
  5. En la segunda VM, completa los siguientes pasos:

    1. Instala iPerf.

      sudo apt-get update && sudo apt-get install iperf
      
    2. Ejecuta la prueba iperf y especifica la dirección IP de la primera VM como destino.

      iperf -t 30 -c internal_ip_of_instance_1 -P 16
      

      Esto ejecuta una prueba de 30 segundos. Si iPerf no puede acceder a la otra VM, es posible que debas ajustar la red o la configuración de firewall en las VMs o tal vez en la consola de Google Cloud.

      El resultado debería ser similar al siguiente ejemplo: Muestra el límite de ancho de banda de salida de 75 Gbps para n2-standard-64 con redes Tier_1 habilitadas, que supera 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
      

Quita recursos después de las pruebas comparativas

Quita los recursos que creaste durante las pruebas comparativas para evitar cargos por la imagen y las VM adicionales.

gcloud

  1. Usa el comando gcloud compute instances delete a fin de quitar las instancias que creaste para las pruebas comparativas.

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

    Reemplaza lo siguiente:

    • VM_NAME_1, VM_NAME_2: Son los nombres de las dos instancias de VM que deseas borrar.
    • PROJECT_ID: Es el nombre de tu proyecto.
    • ZONE: Es la zona de la VM. Ambas VM deben estar en la misma zona.
  2. Usa el comando gcloud compute networks delete a fin de quitar la red que creaste para las pruebas comparativas

    gcloud compute networks delete NETWORK_NAME  \
       --project=PROJECT_ID
    

    Reemplaza lo siguiente:

    • NETWORK_NAME: nombre de la red que deseas borrar.
    • PROJECT_ID: Es el nombre de tu proyecto.
  3. Usa el comando gcloud compute images delete a fin de quitar la imagen que creaste para las pruebas comparativas.

     gcloud compute images delete IMAGE_NAME  \
        --project=PROJECT_ID
    

    Reemplaza lo siguiente:

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

¿Qué sigue?