Ancho de banda de la red


Google Cloud representa el ancho de banda por instancia informática, no por interfaz de red virtual (vNIC) o dirección IP. El tipo de máquina de una instancia define su tasa de salida máxima posible; sin embargo, sólo puedes alcanzar esa tasa de salida máxima posible en situaciones específicas.

Esta página describe los límites de ancho de banda de la red, que son útiles al planificar sus implementaciones. Clasifica el ancho de banda utilizando dos dimensiones:

  • Salida o ingreso : tal como se usa en esta página, la salida y el ingreso siempre son desde la perspectiva de un Google Cloud instancia:
    • Paquetes enviados desde un Google Cloud instancia compone su tráfico de salida (saliente).
    • Paquetes enviados a un Google Cloud instancia compone su tráfico de entrada (entrante).
  • Cómo se enruta el paquete : un paquete se puede enrutar desde una instancia de envío o hacia una instancia de recepción utilizando rutas cuyos próximos saltos están dentro de una red de VPC o rutas fuera de una red de VPC.

Ni las interfaces de red virtual (vNIC) adicionales ni las direcciones IP adicionales por vNIC aumentan el ancho de banda de entrada o salida de una instancia informática. Por ejemplo, una máquina virtual C3 con 22 vCPU está limitada a un ancho de banda de salida total de 23 Gbps. Si configura la máquina virtual C3 con dos vNIC, la máquina virtual aún está limitada a un ancho de banda de salida total de 23 Gbps, no a un ancho de banda de 23 Gbps por vNIC.

Para obtener el mayor ancho de banda de entrada y salida posible, configure el rendimiento de red por VM Tier_1 para su instancia informática.

Toda la información de esta página se aplica a las instancias informáticas de Compute Engine, así como a los productos que dependen de las instancias de Compute Engine. Por ejemplo, un nodo de Google Kubernetes Engine es una instancia de Compute Engine.

Resumen de ancho de banda

La siguiente tabla ilustra el ancho de banda máximo posible en función de si un paquete se envía (salida) o se recibe (entrada) en una instancia informática y el método de enrutamiento del paquete.

Límites de ancho de banda de salida

Enrutamiento dentro
una red VPC
  • Definido principalmente por un ancho de banda de salida máximo por instancia según el tipo de máquina de la instancia de envío y si la red Tier_1 está habilitada.

    • Las máquinas virtuales N2, N2D, C2, C2D y C4A con redes de nivel 1 admiten límites de ancho de banda de salida de hasta 100 Gbps.
    • Las máquinas virtuales H3 admiten límites de ancho de banda de salida de máquina virtual a máquina virtual de hasta 200 Gbps.
    • Las instancias X4, A2 y G2 admiten límites de ancho de banda de salida de hasta 100 Gbps.
    • Las instancias A4 y A3 admiten límites de ancho de banda de salida de hasta 3600 Gbps.
    • Las instancias M4, C4, C3, C3D y Z3 admiten límites de ancho de banda de salida de hasta 200 Gbps con redes de nivel 1.
  • Para conocer otros factores, definiciones y escenarios, consulte Salida a destinos enrutables dentro de una red de VPC .
Enrutamiento exterior
una red VPC
  • Definido principalmente por un ancho de banda de salida máximo por instancia según el tipo de máquina de la instancia de envío y si la red Tier_1 está habilitada. A excepción de las VM H3, la salida máxima posible de una instancia de envío a un destino fuera de su red VPC no puede exceder lo siguiente:

    • 7 Gbps en total cuando la red Tier_1 no está habilitada
    • 25 Gbps en total cuando la red Tier_1 está habilitada
    • 3 Gbps por flujo
  • Para conocer otros factores, definiciones y advertencias, consulte Salida a destinos fuera de una red de VPC .

Límites de ancho de banda de entrada

Enrutamiento dentro
una red VPC
  • Generalmente, las tasas de entrada son similares a las tasas de salida de un tipo de máquina.
  • Para obtener el mayor ancho de banda de entrada posible, habilite la red Tier_1 .
  • El tamaño de su instancia informática, la capacidad de la NIC del servidor, el tráfico que ingresa a otras máquinas virtuales invitadas que se ejecutan en el mismo hardware host, la configuración de red de su sistema operativo invitado y la cantidad de lecturas de disco realizadas por su instancia pueden afectar la tasa de ingreso.
  • Google Cloud no impone ninguna limitación adicional a las tasas de ingreso dentro de una red de VPC.
  • Para conocer otros factores, definiciones y escenarios, consulte Ingreso a destinos enrutables dentro de una red VPC .
Enrutamiento exterior
una red VPC
  • Google Cloud protege cada instancia informática limitando el tráfico de entrada enrutado fuera de una red de VPC. El límite es la primera de las siguientes tasas encontradas:

    • 1.800.000 pps (paquetes por segundo)
    • 30 Gbps
  • Para una serie de máquinas que admite varias NIC físicas, como A4 y A3, el límite es la primera de las siguientes velocidades encontradas:

    • 1.800.000 pps (paquetes por segundo) por NIC física
    • 30 Gbps por NIC física
  • Para conocer otros factores, definiciones y escenarios, consulte Ingreso a destinos fuera de una red de VPC .

Ancho de banda de salida

Google Cloud limita el ancho de banda de salida (salida) utilizando tasas de salida máximas por instancia. Estas tasas se basan en el tipo de máquina de la instancia informática que envía el paquete y en si se puede acceder al destino del paquete mediante rutas dentro de una red de VPC o rutas fuera de una red de VPC. El ancho de banda saliente incluye paquetes emitidos por todas las NIC de la instancia y datos transferidos a todos los volúmenes de Hyperdisk y Persistent Disk conectados a la instancia.

Ancho de banda de salida máximo por instancia

El ancho de banda de salida máximo por instancia es generalmente de 2 Gbps por vCPU, pero existen algunas diferencias y excepciones, según la serie de máquinas. La siguiente tabla muestra el rango de límites máximos para el ancho de banda de salida para el tráfico enrutado dentro de una red de VPC solo para el nivel de red estándar , no para el rendimiento de red de VM Tier_1 .

Serie de máquinas Límite máximo de salida por instancia más bajo para estándar Límite máximo de salida por instancia más alto para estándar
C4 y C4A 10 Gbps 100 Gbps
C3 23 Gbps 100 Gbps
C3D 20 Gbps 100 Gbps
C2 y C2D 10 Gbps 32 Gbps
E2 1 Gbps 16 Gbps
H3 N / A 200 Gbps
M4 32 Gbps 100 Gbps
M3 y M1 32 Gbps 32 Gbps
M2 32 Gbps 32 Gbps en la plataforma de CPU Intel Cascade Lake
16 Gbps en otras plataformas de CPU
N4 10 Gbps 50 Gbps
N2 y N2D 10 Gbps 32 Gbps
N1 (excluyendo máquinas virtuales con 1 vCPU) 10 Gbps 32 Gbps en la plataforma de CPU Intel Skylake
16 Gbps en plataformas de CPU anteriores a Intel Skylake
Tipos de máquinas N1 con 1 vCPU, f1-micro y g1-small 2 Gbps 2 Gbps
diabetes tipo 2 10 Gbps 32 Gbps
X4 N / A 100 Gbps
Z3 23 Gbps 100 Gbps

Puede encontrar el ancho de banda de salida máximo por instancia para cada tipo de máquina enumerado en su página de familia de máquinas específica:

El ancho de banda de salida máximo por instancia no es una garantía. El ancho de banda de salida real se puede reducir según factores como la siguiente lista no exhaustiva:

  • Usar VirtIO en lugar de gVNIC con instancias informáticas que admitan ambos
  • Tamaño del paquete
  • Sobrecarga de protocolo
  • El número de flujos.
  • Configuración del controlador Ethernet del sistema operativo invitado de la instancia informática, como la descarga de suma de comprobación y la descarga de segmentación TCP (TSO)
  • Congestión de la red
  • En una situación en la que las E/S del disco persistente compiten con otro tráfico de salida de la red, el 60 % del ancho de banda máximo de la red se asigna a las escrituras del disco persistente, dejando el 40 % para otro tráfico de salida de la red. Consulte Factores que afectan el rendimiento del disco para obtener más detalles.

Para obtener el mayor ancho de banda de salida máximo posible por instancia:

  • Habilite el rendimiento de red por VM Tier_1 con tipos de máquinas más grandes.
  • Utilice la unidad de transmisión máxima (MTU) de red VPC más grande admitida por su topología de red. Las MTU más grandes pueden reducir la sobrecarga del encabezado de los paquetes y aumentar el rendimiento de los datos de la carga útil.
  • Utilice la última versión del controlador gVNIC.
  • Utilice series de máquinas de tercera generación o posteriores que utilicen Titanium para descargar el procesamiento de red desde la CPU del host.

Salida a destinos enrutables dentro de una red de VPC

Desde la perspectiva de una instancia de envío y para direcciones IP de destino accesibles mediante rutas dentro de una red VPC ,Google Cloud limita el tráfico saliente utilizando estas reglas:

  • Ancho de banda de salida máximo por máquina virtual: el ancho de banda de salida máximo por instancia descrito en la sección Ancho de banda de salida máximo por instancia .
  • Ancho de banda de salida interregional por proyecto: si una instancia de envío y un destino interno o su siguiente salto están en diferentes regiones,Google Cloud aplica una cuota basada en la región y el proyecto de la instancia de envío y la región del destino interno o del siguiente salto. Para obtener más información sobre esta cuota, consulte Ancho de banda de salida de red entre regiones (Mbps) de instancias informáticas en la documentación sobre límites y cuotas de VPC.
  • Límites de Cloud VPN y Cloud Interconnect: cuando se envía tráfico desde una instancia a un destino de dirección IP interna enrutable mediante un túnel de Cloud VPN de próximo salto o una conexión VLAN de Cloud Interconnect, el ancho de banda de salida está limitado por:

Los destinos enrutables dentro de una red VPC incluyen todos los siguientes destinos, cada uno de los cuales es accesible desde la perspectiva de la instancia de envío mediante una ruta cuyo siguiente salto no es la puerta de enlace de Internet predeterminada:

  • Direcciones IPv4 internas regionales en los rangos de direcciones IPv4 primarias de subred y IPv4 secundarias de subred , incluidos los rangos de direcciones IPv4 privadas y los rangos de direcciones IPv4 públicas de uso privado, utilizados por estos recursos de destino:
    • La dirección IPv4 interna principal de la interfaz de red de una instancia receptora (vNIC). (Cuando una instancia de envío se conecta a la dirección IPv4 externa de vNIC de otra instancia, los paquetes se enrutan utilizando una puerta de enlace de Internet predeterminada del siguiente salto, por lo que en su lugar se aplica la salida a destinos fuera de una red de VPC ).
    • Una dirección IPv4 interna en un rango de IP de alias de la vNIC de una instancia receptora.
    • Una dirección IPv4 interna de una regla de reenvío interna para el reenvío de protocolo o para un balanceador de carga de red de paso interno.
  • Direcciones IPv4 internas globales para estos recursos de destino:
  • Rangos de direcciones de subred IPv6 internas utilizados por estos recursos de destino:
    • Una dirección IPv6 del rango de direcciones IPv6 /96 asignada a una vNIC de instancia receptora de doble pila o solo IPv6 ( vista previa ).
    • Una dirección IPv6 del rango de direcciones IPv6 /96 de una regla de reenvío interna para el reenvío de protocolo o para un balanceador de carga de red de paso interno.
  • Rangos de direcciones de subred IPv6 externas utilizados por estos recursos de destino cuando los paquetes se enrutan mediante rutas de subred o rutas de subred de intercambio de tráfico dentro de la red de VPC o mediante rutas personalizadas dentro de la red de VPC que no utilizan el siguiente salto de la puerta de enlace de Internet predeterminada :
    • Una dirección IPv6 del rango de direcciones IPv6 /96 asignada a una vNIC de instancia receptora de doble pila o solo IPv6 ( vista previa ).
    • Una dirección IPv6 del rango de direcciones IPv6 /96 de una regla de reenvío externa para el reenvío de protocolo o para un balanceador de carga de red de paso externo.
  • Otros destinos accesibles utilizando las siguientes rutas de la red VPC:

La siguiente lista clasifica el tráfico desde el envío de instancias a destinos internos, desde el ancho de banda más alto posible hasta el más bajo:

Salida a destinos fuera de una red de VPC

Desde la perspectiva de una instancia de envío y para direcciones IP de destino fuera de una red VPC , Google Cloud limita el tráfico saliente a cualquiera de las siguientes tarifas que se alcance primero:

  • Ancho de banda de salida por instancia: el ancho de banda máximo para todas las conexiones desde una instancia informática a destinos fuera de una red de VPC es el menor entre el ancho de banda máximo de salida por instancia y una de estas velocidades:

    • 25 Gbps, si la red Tier_1 está habilitada
    • 7 Gbps, si la red Tier_1 no está habilitada
    • 1 Gbps para instancias H3
    • 7 Gbps por NIC física para series de máquinas que admiten varias NIC físicas, como A4 y A3.

    Por ejemplo, aunque una instancia c3-standard-44 tiene un ancho de banda de salida máximo por VM de 32 Gbps, el ancho de banda de salida por VM desde una VM c3-standard-44 a destinos externos es de 25 Gbps o 7 Gbps, dependiendo de si la red Tier_1 está habilitada.

  • Tasa de salida máxima por flujo: el ancho de banda máximo para cada conexión única de 5 tuplas, desde una instancia informática hasta un destino fuera de una red VPC, es de 3 Gbps, excepto en H3, donde es de 1 Gbps.

  • Ancho de banda de salida de Internet por proyecto: el ancho de banda máximo para todas las conexiones desde instancias informáticas en cada región de un proyecto a destinos fuera de una red de VPC está definido por las cuotas de ancho de banda de salida de Internet del proyecto.

Los destinos fuera de una red de VPC incluyen todos los siguientes destinos, cada uno de los cuales es accesible mediante una ruta en la red de VPC de la instancia de envío cuyo siguiente salto es la puerta de enlace de Internet predeterminada:

  • Direcciones IPv4 e IPv6 externas globales para balanceadores de carga de red de proxy externo y balanceadores de carga de aplicaciones externos
  • Direcciones IPv4 externas regionales para Google Cloud recursos, incluidas direcciones IPv4 externas de VM vNIC, direcciones IPv4 externas para reenvío de protocolos externos, balanceadores de carga de red de paso externo y paquetes de respuesta a puertas de enlace Cloud NAT.
  • Direcciones IPv6 externas regionales en subredes de doble pila o solo IPv6 ( vista previa ) con rangos de direcciones IPv6 externas utilizadas por direcciones IPv6 externas de instancias de doble pila o solo IPv6 ( vista previa ), reenvío de protocolo externo y balanceadores de carga de red de paso externo. La subred debe estar ubicada en una red VPC independiente y sin pares. Se debe poder acceder al rango de direcciones IPv6 de destino mediante una ruta en la red VPC de la instancia de envío cuyo siguiente salto sea la puerta de enlace de Internet predeterminada. Si una subred de doble pila o solo IPv6 con un rango de direcciones IPv6 externo está ubicada en la misma red de VPC o en una red de VPC emparejada, consulte Salida a destinos enrutables dentro de una red de VPC .
  • Otros destinos externos a los que se puede acceder mediante una ruta estática en la red VPC de la instancia de envío siempre que el siguiente salto de la ruta sea la puerta de enlace de Internet predeterminada.

Para obtener detalles sobre cuál Google Cloud Los recursos utilizan qué tipos de direcciones IP externas, consulte Direcciones IP externas .

Ancho de banda de entrada

Google Cloud maneja el ancho de banda entrante dependiendo de cómo se enruta el paquete entrante a una instancia informática receptora.

Ingreso a destinos enrutables dentro de una red VPC

Una instancia receptora puede manejar tantos paquetes entrantes como lo permitan su tipo de máquina, sistema operativo y otras condiciones de la red. Google Cloud no implementa ninguna restricción de ancho de banda intencionada en los paquetes entrantes entregados a una instancia si el paquete entrante se entrega utilizando rutas dentro de una red de VPC:

  • Rutas de subred en la red VPC de la instancia receptora
  • Emparejamiento de rutas de subred en una red VPC emparejada
  • Rutas en otra red cuyos próximos saltos son túneles de Cloud VPN, archivos adjuntos de Cloud Interconnect (VLAN) o instancias de dispositivos de enrutador ubicadas en la red de VPC de la instancia receptora.

Los destinos de los paquetes que se enrutan dentro de una red VPC incluyen:

  • La dirección IPv4 interna principal de la interfaz de red (NIC) de la instancia receptora. Las direcciones IPv4 internas primarias son direcciones IPv4 internas regionales que provienen del rango de direcciones IPv4 primarias de una subred .
  • Una dirección IPv4 interna de un rango de IP de alias de la NIC de la instancia receptora. Los rangos de alias de IP pueden provenir del rango de direcciones IPv4 principal de una subred o de uno de sus rangos de direcciones IPv4 secundarios.
  • Una dirección IPv6 del rango de direcciones IPv6 /96 asignada a una NIC de instancia receptora de doble pila o solo IPv6 ( vista previa ). Los rangos de IPv6 de las instancias informáticas pueden provenir de estos rangos de IPv6 de subred:
  • Una dirección IPv4 interna de una regla de reenvío utilizada por el protocolo interno de reenvío a la instancia receptora o al Network Load Balancer de paso interno donde la instancia receptora es un backend del balanceador de carga. Las direcciones IPv4 de la regla de reenvío interno provienen del rango de direcciones IPv4 principal de una subred.
  • Una dirección IPv6 interna del rango /96 IPv6 de una regla de reenvío utilizada por el reenvío de protocolo interno a la instancia receptora o al balanceador de carga de red de paso interno donde la instancia receptora es un backend del balanceador de carga. Las direcciones IPv6 de la regla de reenvío interno provienen del rango de direcciones IPv6 internas de una subred.
  • Una dirección IPv6 externa del rango /96 IPv6 de una regla de reenvío utilizada por el reenvío de protocolo externo a la instancia receptora o al balanceador de carga de red de paso externo. La instancia de recepción es un backend del balanceador de carga cuando el paquete entrante se enruta dentro de la red VPC utilizando una de las rutas enumeradas anteriormente en esta sección . Las direcciones IPv6 de la regla de reenvío externo provienen del rango de direcciones IPv6 externas de una subred.
  • Una dirección IP dentro del rango de destino de una ruta estática personalizada que utiliza la instancia de recepción como instancia del próximo salto ( next-hop-instance o next-hop-address ).
  • Una dirección IP dentro del rango de destino de una ruta estática personalizada que utiliza un siguiente salto del balanceador de carga de red de paso interno ( next-hop-ilb ), si la instancia receptora es un backend para ese balanceador de carga.

Ingreso a destinos fuera de una red de VPC

Google Cloud implementa los siguientes límites de ancho de banda para los paquetes entrantes entregados a una instancia receptora utilizando rutas fuera de una red VPC. Cuando se trata de equilibrio de carga, los límites de ancho de banda se aplican individualmente a cada instancia receptora.

Para las series de máquinas que no admiten varias NIC físicas, la restricción de ancho de banda entrante aplicable se aplica colectivamente a todas las interfaces de red virtual (vNIC). El límite es la primera de las siguientes tasas encontradas:

  • 1.800.000 paquetes por segundo
  • 30 Gbps

Para series de máquinas que admiten varias NIC físicas, como A4 y A3, la restricción de ancho de banda entrante aplicable se aplica individualmente a cada NIC física. El límite es la primera de las siguientes tasas encontradas:

  • 1.800.000 paquetes por segundo por NIC física
  • 30 Gbps por NIC física

Los destinos de los paquetes que se enrutan utilizando rutas fuera de una red VPC incluyen:

  • Una dirección IPv4 externa asignada en una configuración de acceso NAT uno a uno en una de las interfaces de red (NIC) de la instancia receptora.
  • Una dirección IPv6 externa del rango de direcciones IPv6 /96 asignada a una vNIC de una instancia receptora de doble pila o solo IPv6 ( vista previa ) cuando el paquete entrante se enruta utilizando una ruta fuera de la red VPC de la instancia receptora.
  • Una dirección IPv4 externa de una regla de reenvío utilizada por el reenvío de protocolo externo a la instancia receptora o al balanceador de carga de red de paso externo donde la instancia receptora es un backend del balanceador de carga.
  • Una dirección IPv6 externa del rango /96 IPv6 de una regla de reenvío utilizada por el reenvío de protocolo externo a la instancia receptora o al balanceador de carga de red de paso externo. La instancia receptora debe ser un backend del balanceador de carga cuando el paquete entrante se enruta utilizando una ruta fuera de una red VPC.
  • Respuestas entrantes establecidas procesadas por Cloud NAT.

Marcos gigantes

Para recibir y enviar tramas gigantes , configure la red VPC utilizada por sus instancias informáticas; establezca la unidad de transmisión máxima (MTU) en un valor mayor, hasta 8896.

Los valores de MTU más altos aumentan el tamaño del paquete y reducen la sobrecarga del encabezado del paquete, lo que aumenta el rendimiento de los datos de la carga útil.

Puede utilizar tramas gigantes con la versión 1.3 o posterior del controlador gVNIC en instancias de VM, o con el controlador IDPF en instancias sin sistema operativo. No todos Google Cloud Las imágenes públicas incluyen estos controladores. Para obtener más información sobre la compatibilidad del sistema operativo con tramas gigantes, consulte la pestaña Funciones de red en la página de detalles del sistema operativo .

Si está utilizando una imagen del sistema operativo que no es totalmente compatible con marcos gigantes, puede instalar manualmente la versión del controlador gVNIC v1.3.0 o posterior. Google recomienda instalar la versión del controlador gVNIC marcada como Latest para beneficiarse de funciones adicionales y correcciones de errores. Puede descargar los controladores gVNIC desde GitHub .

Para actualizar manualmente la versión del controlador gVNIC en su sistema operativo invitado, consulte Uso en sistemas operativos no compatibles .

Recibir y transmitir colas

A cada NIC o vNIC para una instancia informática se le asigna una cantidad de colas de recepción y transmisión para procesar paquetes de la red.

  • Cola de recepción (RX): Cola para recibir paquetes. Cuando la NIC recibe un paquete de la red, selecciona el descriptor de un paquete entrante de la cola, lo procesa y entrega el paquete al sistema operativo invitado a través de una cola de paquetes adjunta a un núcleo de vCPU mediante una interrupción. Si la cola RX está llena y no hay ningún buffer disponible para colocar un paquete, entonces el paquete se descarta. Por lo general, esto puede suceder si una aplicación utiliza en exceso un núcleo de vCPU que también está conectado a la cola de paquetes seleccionada.
  • Cola de transmisión (TX): Cola para transmitir paquetes. Cuando el sistema operativo invitado envía un paquete, se asigna un descriptor y se coloca en la cola de TX. Luego, la NIC procesa el descriptor y transmite el paquete.

Asignación de cola predeterminada

A menos que asigne explícitamente recuentos de colas para las NIC , puede modelar el algoritmo Google Cloud utiliza para asignar un número fijo de colas RX y TX por NIC de esta manera:

Instancias de metal desnudo
Para las instancias bare metal, solo hay una NIC, por lo que el recuento máximo de colas es 16.
Instancias de VM que utilizan la interfaz de red gVNIC

Para las instancias C4, para mejorar el rendimiento, las siguientes configuraciones utilizan una cantidad fija de colas:

  • Para instancias de Linux con 2 vCPU, el recuento de colas es 1.
  • Para instancias de Linux con 4 vCPU, el recuento de colas es 2.

Para las otras series de máquinas, el recuento de colas depende de si la serie de máquinas utiliza Titanio o no.

  • Para instancias de tercera generación (excluyendo M3) y posteriores que usan Titanium:

    Divida la cantidad de vCPU por la cantidad de vNIC ( num_vcpus/num_vnics ) y descarte el resto.

  • Para máquinas virtuales de primera y segunda generación que no usan Titanium:

    Divida la cantidad de vCPU por la cantidad de vNIC y luego divida el resultado por 2 ( num_vcpus/num_vnics/2 ). Deseche cualquier resto.

Para finalizar el cálculo del recuento de cola predeterminado:

  1. Si el número calculado es menor que 1, asigne a cada vNIC una cola.

  2. Determine si el número calculado es mayor que el número máximo de colas por vNIC, que es 16 . Si el número calculado es mayor que 16 , ignore el número calculado y, en su lugar, asigne 16 colas a cada vNIC.

Instancias de VM que utilizan la interfaz de red VirtIO o un controlador personalizado

Divida la cantidad de vCPU por la cantidad de vNIC y descarte el resto: [number of vCPUs/number of vNICs] .

  1. Si el número calculado es menor que 1, asigne a cada vNIC una cola.

  2. Determine si el número calculado es mayor que el número máximo de colas por vNIC, que es 32 . Si el número calculado es mayor que 32 , ignore el número calculado y, en su lugar, asigne 32 colas a cada vNIC.

Ejemplos

Los siguientes ejemplos muestran cómo calcular el número predeterminado de colas para una instancia de VM:

  • Si una instancia de VM usa VirtIO y tiene 16 vCPU y 4 vNIC, el número calculado es [16/4] = 4 . Google Cloud Asigna cuatro colas a cada vNIC.

  • Si una instancia de VM usa gVNIC y tiene 128 vCPU y dos vNIC, el número calculado es [128/2/2] = 32 . Google Cloud Asigna a cada vNIC el número máximo de colas posibles por vNIC. Google CloudAsigna 16 colas por vNIC.

En sistemas Linux, puede utilizar ethtool para configurar una vNIC con menos colas que la cantidad de colas Google Cloud asigna por vNIC.

Asignación de cola personalizada para instancias de VM

En lugar de la asignación de cola predeterminada , puedes asignar un recuento de cola personalizado (total de RX y TX) a cada vNIC cuando creas una nueva instancia informática mediante la API de Compute Engine.

La cantidad de colas personalizadas que especifique debe cumplir con las siguientes reglas:

  • El recuento mínimo de colas que puede asignar por vNIC es uno.

  • El recuento máximo de colas que puede asignar a cada vNIC de una instancia de VM es el menor entre el recuento de vCPU o el recuento máximo de colas por vNIC, según el tipo de controlador:

    • Usando virtIO o un controlador personalizado, el número máximo de colas es 32 .
    • Con gVNIC , el recuento máximo de colas es 16 , excepto en lo siguiente, donde el recuento máximo de colas es 32:
      • Instancias A2 o G2
      • Instancias de TPU
      • Instancias C2, C2D, N2 o N2D con redes Tier_1 habilitadas
    • Para las siguientes configuraciones de VM confidenciales , el recuento máximo de colas es 8 :

      • AMD SEV en tipos de máquinas C2D y N2D
      • AMD SEV-SNP en tipos de máquinas N2D
  • Si asigna recuentos de cola personalizados a todas las NIC de la instancia informática, la suma de las asignaciones de recuento de colas debe ser menor o igual a la cantidad de vCPU asignadas a la instancia.

Puede sobresuscribir el recuento de colas personalizadas para sus vNIC. En otras palabras, puede tener una suma de los recuentos de colas asignadas a todas las NIC para su instancia de VM que sea mayor que la cantidad de vCPU para su instancia. Para sobresuscribir el recuento de cola personalizado, la instancia de VM debe cumplir las siguientes condiciones:

  • Utilice gVNIC como tipo de vNIC para todas las NIC configuradas para la instancia.
  • Utiliza un tipo de máquina que admite redes de nivel 1.
  • Tiene habilitadas las redes de nivel 1.
  • Se especificó un recuento de cola personalizado para todas las NIC configuradas para la instancia.

Con la sobresuscripción de colas, el recuento máximo de colas para la instancia de VM es 16 veces la cantidad de NIC. Por lo tanto, si tiene 6 NIC configuradas para una instancia con 30 vCPU, puede configurar un máximo de (16 * 6) o 96 colas personalizadas para su instancia.

Ejemplos

  • Si una instancia de VM tiene 8 vCPU y 3 vNIC, el recuento máximo de colas para la instancia es el número de vCPUS u 8. Puede asignar 1 cola a nic0 , 4 colas a nic1 y 3 colas a nic2 . En este ejemplo, no puede asignar posteriormente 4 colas a nic2 mientras mantiene las otras dos asignaciones de colas de vNIC porque la suma de las colas asignadas no puede exceder la cantidad de vCPU.

  • Si tiene una máquina virtual N2 con 96 vCPU y 2 vNIC, puede asignar a ambas vNIC hasta 32 colas cada una cuando usa el controlador virtIO, o hasta 16 colas cada una cuando usa el controlador gVNIC. Si habilita la red Tier_1 para la máquina virtual N2, puede asignar hasta 32 colas a cada vNIC. En este ejemplo, la suma de las colas asignadas siempre es menor o igual que la cantidad de vCPU.

También es posible asignar un recuento de cola personalizado solo para algunas NIC , lo que permiteGoogle Cloud asigne colas a las NIC restantes. La cantidad de colas que puede asignar por vNIC aún está sujeta a las reglas mencionadas anteriormente. Puede modelar la viabilidad de su configuración y, si su configuración es posible, el número de colas que Google Cloud asigna a las vNIC restantes con este proceso:

  1. Calcule la suma de colas para las vNIC mediante una asignación de cola personalizada. Para una máquina virtual de ejemplo con 20 vCPU y 6 vNIC, suponga que asigna nic0 5 colas, nic1 6 colas, nic2 4 colas y deja que Google Cloudasigne colas para nic3 , nic4 y nic5 . En este ejemplo, la suma de colas asignadas de forma personalizada es 5+6+4 = 15 .

  2. Reste la suma de las colas asignadas de forma personalizada del número de vCPU. Si la diferencia es menor que la cantidad de vNIC restantes para las cualesGoogle Cloud debe asignar colas, Google Cloud devuelve un error porque cada vNIC debe tener al menos una cola.

    Continuando con el ejemplo con una VM que tiene 20 vCPU y una suma de 15 colas asignadas de forma personalizada, Google Cloud Le quedan 20-15 = 5 colas para asignar a las vNIC restantes ( nic3 , nic4 , nic5 ).

  3. Divida la diferencia del paso anterior por la cantidad de vNIC restantes y descarte el resto: ⌊(number of vCPUs - sum of assigned queues)/(number of remaining vNICs)⌋ . Este cálculo siempre da como resultado un número entero (no una fracción) que es al menos igual a uno debido a la restricción explicada en el paso anterior. Google Cloud asigna a cada vNIC restante un recuento de colas que coincide con el número calculado, siempre que el número calculado no sea mayor que el número máximo de colas por vNIC. La cantidad máxima de colas por vNIC depende del tipo de controlador:

  • Usando virtIO o un controlador personalizado, si el número calculado de colas para cada vNIC restante es mayor que 32 , Google Cloud Asigna a cada vNIC restante 32 colas.
  • Usando gVNIC, si el número calculado de colas para cada vNIC restante es mayor que el límite de 16 o 32 (según la configuración de la VM ), Google Cloud Asigna a cada vNIC restante 16 colas.

Configurar recuentos de cola personalizados

Para crear una instancia informática que utilice un recuento de cola personalizado para una o más NIC o vNIC, complete los siguientes pasos.

En los siguientes ejemplos de código, la máquina virtual se crea con el tipo de interfaz de red establecido en GVNIC y el rendimiento de red de nivel 1 por máquina virtual habilitado. Puede utilizar estos ejemplos de código para especificar los recuentos máximos de colas y la sobresuscripción de colas disponibles para los tipos de máquinas admitidas.

nube de gcloud

  1. Si aún no tiene una red VPC con una subred para cada interfaz vNIC que planea configurar, créelas.
  2. Utilice el comando gcloud compute instances create para crear la instancia informática. Repita el indicador --network-interface para cada vNIC que desee configurar para la instancia e incluya la opción 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

Reemplace lo siguiente:

  • INSTANCE_NAME : un nombre para la nueva instancia informática
  • ZONE : la zona para crear la instancia en
  • MACHINE_TYPE : el tipo de máquina de la instancia. Para sobresuscribir el recuento de colas, el tipo de máquina que especifique debe admitir redes gVNIC y Tier_1.
  • NETWORK_NAME : el nombre de la red creada anteriormente
  • SUBNET_* : el nombre de una de las subredes creadas anteriormente
  • QUEUE_SIZE : el número de colas para la vNIC, sujeto a las reglas analizadas en Asignación de colas personalizada .

Terraformar

  1. Si aún no tiene una red VPC con una subred para cada interfaz vNIC que planea configurar, créelas.
  2. Cree una instancia informática con recuentos de colas específicos para vNIC mediante el recurso google_compute_instance . Repita el parámetro --network-interface para cada vNIC que desee configurar para la instancia informática e incluya el 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""
    }
    
    }
    
    

Reemplace lo siguiente:

  • VM_NAME : un nombre para la nueva instancia informática
  • PROJECT_ID : ID del proyecto en el que crear la instancia. A menos que esté utilizando una red VPC compartida, el proyecto que especifique debe ser el mismo en el que se crearon todas las subredes y redes.
  • DEVICE_NAME : el nombre que se asociará con el disco de arranque en el sistema operativo invitado.
  • IMAGE_NAME : el nombre de una imagen, por ejemplo, "projects/debian-cloud/global/images/debian-11-bullseye-v20231010" .
  • DISK_SIZE : el tamaño del disco de arranque, en GiB
  • DISK_TYPE : el tipo de disco que se utilizará para el disco de arranque, por ejemplo, pd-standard
  • MACHINE_TYPE : el tipo de máquina de la instancia. Para sobresuscribir el recuento de colas, el tipo de máquina que especifique debe admitir redes gVNIC y Tier_1.
  • ZONE : la zona para crear la instancia en
  • QUEUE_COUNT : el número de colas para la vNIC, sujeto a las reglas analizadas en Asignación de colas personalizada .
  • SUBNET_* : el nombre de la subred a la que se conecta la interfaz de red

DESCANSAR

  1. Si aún no tiene una red VPC con una subred para cada interfaz VNIC que planea configurar, cree.
  2. Cree una instancia de cómputo con recuentos de colas específicos para NIC utilizando el método instances.insert . Repita la propiedad networkInterfaces para configurar múltiples interfaces de red.

    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"
        } ],
    }
    

    Reemplace lo siguiente:

    • PROJECT_ID : ID del proyecto para crear la instancia de cómputo en
    • ZONE : zona para crear la instancia de cómputo en
    • VM_NAME : Nombre de la nueva instancia de cómputo
    • MACHINE_TYPE : Tipo de máquina, predefinido o personalizado , para la nueva instancia de cómputo. Para suscribir en exceso el recuento de colas, el tipo de máquina debe admitir redes GVNIC y TIER_1.
    • SUBNET_* : el nombre de la subred al que se conecta la interfaz de red
    • QUEUE_COUNT : número de colas para el VNIC, sujeto a las reglas discutidas en la asignación de colas personalizadas .

Asignaciones de colas y cambiando el tipo de máquina

Las instancias de cómputo se crean con una asignación de cola predeterminada , o puede asignar un recuento de colas personalizado a cada tarjeta de interfaz de red virtual (VNIC) cuando crea una nueva instancia de cómputo mediante el uso de la API de motor Compute. Las asignaciones de cola VNIC predeterminadas o personalizadas solo se establecen al crear una instancia de cómputo. Si su instancia tiene VNIC que usan recuentos de colas predeterminados, puede cambiar su tipo de máquina . Si el tipo de máquina al que está cambiando tiene un número diferente de VCPU, los recuentos de cola predeterminados para su instancia se recalculan en función del nuevo tipo de máquina.

Si su VM tiene VNIC que usan cuentas personalizadas de colas no defactoras, entonces puede cambiar el tipo de máquina utilizando la API de Google Cloud CLI o Compute Engine para actualizar las propiedades de la instancia . La conversión tiene éxito si la VM resultante admite el mismo recuento de colas por vnic que la instancia original. Para las máquinas virtuales que usan la interfaz Virtio-Net y tienen un recuento de colas personalizado que es superior a 16 por VNIC, no puede cambiar el tipo de máquina a una tercera generación o tipo de máquina posterior, porque solo usan GVNIC. En su lugar, puede migrar su VM a una tercera generación o tipo de máquina posterior siguiendo las instrucciones para mover su carga de trabajo a una nueva instancia de cómputo .

¿Qué sigue?