Información sobre las CPU virtuales

Compute Engine asigna CPU virtuales a tus instancias de máquina virtual (VM) o de equipos físicos cuando las creas. En este documento, se explica cómo se asignan las CPUs virtuales al hardware físico para ayudarte a optimizar el rendimiento, administrar los costos y cumplir con los requisitos de licencias de software.

Información sobre las CPU virtuales

Una CPU virtual (vCPU) representa una unidad de potencia de la unidad central de procesamiento (CPU) asignada a tu instancia de procesamiento. Según la arquitectura del procesador subyacente, una vCPU se programa para ejecutarse en un solo subproceso de ejecución de hardware o en un núcleo de CPU físico dedicado completo.

Las CPUs virtuales forman parte de una plataforma de CPU. Una plataforma de CPU es una configuración basada en CPU que incluye lo siguiente:

  • Tipo de procesador de CPU
  • Conjuntos de instrucciones (como AVX2 y AVX-512)
  • Tamaños de caché
  • Velocidades de reloj
  • Divisiones de NUMA
  • Tiempos de búsqueda de acceso a la memoria
  • Aceleradores en el chip

Asignar CPU virtuales a una instancia de procesamiento

Para crear una instancia de VM o de Bare Metal (que se denominan de forma colectiva instancia de procesamiento), debes usar un tipo de máquina. El tipo de máquina determina los recursos que Compute Engine asigna a la instancia. Por ejemplo, el tipo de máquina c4-standard-4 crea una VM con 4 CPUs virtuales y 16 GB de memoria.

Para ayudarte a elegir el tipo de máquina adecuado para tu carga de trabajo, Compute Engine agrupa los tipos de máquinas en familias de máquinas y series de máquinas.

  • Familia de máquinas: Es un conjunto seleccionado de parámetros de configuración de hardware y procesador optimizados para cargas de trabajo específicas, por ejemplo, De uso general, Optimizadas para aceleradores o con optimización de memoria.
  • Serie de máquinas: Es una combinación específica de procesador de CPU, hardware y capacidades de red dentro de una familia de máquinas. Cada serie se enfoca en un aspecto diferente de la capacidad de procesamiento o el rendimiento. Por ejemplo, la serie E ofrece VMs eficientes a un costo bajo, mientras que la serie C ofrece un rendimiento mejor y más coherente que la serie E.

    • Una serie de máquinas puede tener varias generaciones, como C3 y C4. Un número de generación o serie más alto indica procesadores o tecnologías de CPU subyacentes más nuevos. Por ejemplo, la serie M4, que se ejecuta en procesadores Intel Xeon de 5ª generación (también conocidos como Emerald Rapids), es una generación más reciente que la serie de máquinas M3, que se ejecuta en procesadores Intel Xeon de 3ª generación (también conocidos como Ice Lake).
    • La arquitectura subyacente de una serie y un tipo de máquina se indica con una letra final en el nombre de la serie de máquinas. Por ejemplo, la serie de máquinas C de 4ª generación está disponible como C4 (Intel), C4D (AMD), C4A (Arm) o C4N (optimizada para redes).

Asignación de núcleos físicos y multiprocesamiento simultáneo

En la mayoría de los procesadores x86, cada núcleo de CPU física admite dos subprocesos de ejecución de hardware. Los procesadores Intel Xeon usan la tecnología Intel Hyper-Threading y los procesadores AMD EPYC usan subprocesos múltiples simultáneos (SMT). Para estos procesadores, Compute Engine implementa cada vCPU como un solo subproceso de hardware que se ejecuta en un núcleo físico. Por lo tanto, dos CPU virtuales comparten un solo núcleo de CPU físico (una proporción de 2:1 de CPU virtuales a núcleos físicos). Por ejemplo, una VM con 4 CPU virtuales usa 2 núcleos de CPU físicos con SMT.

En ciertas series de máquinas y arquitecturas de procesadores, Compute Engine no usa SMT. En cambio, cada CPU virtual se asigna directamente a un núcleo de CPU físico dedicado (una proporción de 1:1 de CPU virtuales a núcleos físicos):

  • Procesadores Arm: En las series de máquinas basadas en Arm64, como N4A, C4A o A4X, la arquitectura de hardware usa núcleos de un solo subproceso. Cada CPU virtual representa un núcleo físico completo.
  • Series de máquinas optimizadas para procesamiento: Las series de máquinas H4D y H3 no admiten SMT. Cada CPU virtual representa un núcleo de CPU físico completo, lo que proporciona un alto rendimiento de un solo subproceso y elimina la contención de recursos entre subprocesos.
  • Serie de máquinas Tau: Para las series de máquinas Tau T2A (con tecnología de procesadores Ampere Altra) y Tau T2D (con tecnología de procesadores AMD EPYC Milan de 3ª generación), Compute Engine inhabilita SMT por diseño. Estos tipos de instancias de procesamiento siempre tienen una CPU virtual por núcleo.
  • Instancias de Bare Metal: En el caso de las instancias de Bare Metal, una CPU virtual equivale a una CPU. La cantidad de CPU virtuales disponibles para la instancia es equivalente a la cantidad de subprocesos de hardware en el servidor host. No puedes ajustar ni establecer manualmente los subprocesos por núcleo.

Para cumplir con los requisitos específicos de las licencias de software o de las cargas de trabajo, puedes personalizar la forma en que las CPUs virtuales aparecen en tu sistema operativo invitado. Para obtener más información, consulta Personaliza la cantidad de núcleos de CPU visibles. Para obtener una lista de las series de máquinas y las arquitecturas que no usan SMT, consulta Configura la cantidad de subprocesos por núcleo.

CPU virtuales dedicadas frente a las de núcleo compartido

Cuando eliges un tipo de máquina, tus CPUs virtuales se asignan a un subproceso de hardware de CPU o usan un modelo de recursos con núcleo compartido:

  • CPUs virtuales completas: Los tipos de máquinas estándar, con alta capacidad de memoria, con alta capacidad de CPU y tipos personalizados de máquinas asignan un subproceso de ejecución de hardware o un núcleo físico para cada CPU virtual.
    • Para las series de máquinas N4, N4A, N4D y E2 de la familia de máquinas de uso general, el sistema de administración dinámica de recursos (DRM) garantiza que cada CPU virtual activa tenga un subproceso de ejecución de hardware disponible que la respalde. La DRM permite que Compute Engine use mejor las CPU físicas disponibles mediante la programación de instancias de procesamiento en servidores según la demanda de recursos y la programación de subprocesos de CPU virtual en CPU físicas para que se minimice el tiempo de espera. Las series de máquinas N1, N2 y N2D de la familia de máquinas de uso general usan la programación de hosts estándar.
    • Para las series de máquinas C, M, G, Z y A, los recursos de CPU virtuales se asignan de forma exclusiva a tu instancia y nunca comparten ciclos de ejecución con otras instancias de procesamiento.
  • CPUs virtuales con núcleo compartido: Los tipos de máquinas con núcleo compartido son e2-micro, e2-small, e2-medium, f1-micro y g1-small. Estos tipos de máquinas comparten un núcleo de CPU físico con el cambio de contexto. En lugar de subprocesos de hardware dedicados, estas VMs con núcleo compartido mantienen una fracción específica del tiempo del núcleo físico:

    • e2-micro mantiene 2 CPU virtuales con un 12.5% de tiempo de CPU cada una (25% en total).
    • e2-small mantiene 2 CPU virtuales con un 25% de tiempo de CPU cada una (50% en total).
    • e2-medium mantiene 2 CPU virtuales con un 50% de tiempo de CPU cada una (100% en total).
    • f1-micro mantiene 1 CPU virtual por hasta el 20% del tiempo de CPU.
    • g1-small mantiene 1 CPU virtual por hasta el 50% del tiempo de CPU.

    En comparación con las VMs con CPU virtuales completas, las VMs con CPU virtuales con núcleo compartido proporcionan una opción rentable para ejecutar aplicaciones pequeñas que no requieren muchos recursos, microservicios o cargas de trabajo de desarrollo o prueba que no requieren una capacidad de procesamiento de CPU máxima continua.

Características de rendimiento de las CPUs virtuales

El rendimiento de procesamiento de una CPU virtual depende de su plataforma de CPU, velocidad de reloj, jerarquía de caché, dinámica de varios subprocesos y programación de recursos.

Plataformas de CPU y conjuntos de instrucciones

Compute Engine ofrece instancias de procesamiento que se ejecutan en varias generaciones de procesadores Intel, AMD, Arm y Google personalizados. Cada plataforma de CPU presenta mejoras de microarquitectura y conjuntos de instrucciones especializados:

  • Extensiones vectoriales avanzadas (AVX-512): Disponibles en plataformas Intel (como Ice Lake, Emerald Rapids y Sapphire Rapids) y AMD EPYC (Genoa y Turin), AVX-512 acelera las operaciones matemáticas vectoriales, la computación científica y la compresión de datos.
  • AMX y VNNI: Estas extensiones aceleran la inferencia del aprendizaje profundo y las operaciones de matrices directamente en la vCPU.
    • Las extensiones de matriz avanzadas (AMX) están disponibles en los procesadores Intel (Intel Xeon de 4ª generación Sapphire Rapids y versiones posteriores).
    • Las instrucciones de red neuronal vectorial (VNNI) están disponibles en los procesadores Intel y AMD EPYC (Genoa de 4ª generación y versiones posteriores).
  • Arm NEON y SVE: Arm NEON, disponible en la plataforma de CPU Ampere Altra, y Scalable Vector Extension (SVE), disponible en las plataformas de CPU Google Axion y NVIDIA Grace, proporcionan una ejecución de vectores escalable para las cargas de trabajo web nativas de la nube.

Velocidad de reloj y frecuencia turbo

Una vCPU ejecuta instrucciones en la frecuencia de reloj base de su procesador físico subyacente. Cuando las cargas de trabajo exigen una potencia de procesamiento adicional y el margen térmico lo permite, los procesadores aumentan automáticamente la frecuencia a una frecuencia turbo de todos los núcleos o de un solo núcleo.

Algunas series de máquinas funcionan con las velocidades de reloj sostenidas más altas en Compute Engine. Por ejemplo, C4 que se ejecuta en Granite Rapids tiene una frecuencia turbo de núcleo completo de hasta 3.9 GHz, y A3 Mega o A3 High tienen una frecuencia turbo de núcleo completo de hasta 3.8 GHz. Elige CPUs virtuales de alta frecuencia para aplicaciones de un solo subproceso, automatización de diseño electrónico (EDA) y servidores de juegos.

Para ver las frecuencias de cada plataforma de CPU que usa Compute Engine, consulta Plataformas de CPU.

Uso compartido de recursos de varios subprocesos

En los tipos de máquinas con SMT activo (2 CPUs virtuales por núcleo), los dos subprocesos de ejecución de hardware comparten las cachés de datos y de instrucciones de nivel 1 (L1), la caché de nivel 2 (L2), las unidades de ejecución y los búferes de búsqueda de traducción (TLB) del núcleo físico.

  • Cargas de trabajo simultáneas y vinculadas a E/S: Para los servidores web, las API Gateways y las operaciones de base de datos con acceso frecuente a la memoria, SMT aumenta la capacidad de procesamiento general del núcleo ejecutando instrucciones en un subproceso mientras el otro espera la recuperación de la memoria.
  • Cargas de trabajo vinculadas al procesamiento: Para las aplicaciones que saturan de forma continua las unidades de punto flotante o las cachés L1/L2, compartir unidades de ejecución entre dos vCPUs puede causar una contención de recursos. Si tu carga de trabajo experimenta contención en instancias de procesamiento con SMT habilitado, considera inhabilitar SMT configurando los subprocesos por núcleo en 1 o migrando a una serie de máquinas con núcleos físicos dedicados (como C4A o H4D).

Administración dinámica de recursos y supervisión del rendimiento

Compute Engine usa optimizaciones de hardware y software especializadas para mantener una latencia de CPU virtual predecible:

  • Arquitectura de Google Titanium: Las series de máquinas de nueva generación (incluidas N4, N4D, N4A, C3, C3D y C4) usan tarjetas de descarga de Google Titanium, un programador de CPU personalizado y una migración en vivo que tiene en cuenta el rendimiento. La administración dinámica de recursos conserva la afinidad de NUMA (acceso no uniforme a memoria) y minimiza la interferencia de vecinos ruidosos.
  • Administración dinámica de recursos para E2: En el caso de las VMs E2, el hipervisor asigna de forma dinámica la CPU virtual y la memoria a los recursos físicos a pedido. Esta asignación dinámica impulsa la rentabilidad, ya que optimiza el uso de los recursos físicos.
  • Unidad de supervisión de rendimiento (PMU): Puedes habilitar la PMU en las series de máquinas compatibles (como C4, M4 y A4X) para acceder a los contadores de hardware de bajo nivel. Las herramientas de generación de perfiles usan contadores de PMU para hacer un seguimiento de las predicciones erróneas de ramas, los errores de caché y las instrucciones por ciclo (IPC).
  • Agente de operaciones: Puedes instalar el Agente de operaciones en tus instancias de procesamiento para supervisar el uso de CPU y recopilar telemetría a nivel del sistema. El Agente de operaciones envía estos datos a Google Cloud Observability para ayudarte a analizar y optimizar el rendimiento de las CPUs virtuales.

Consideraciones sobre el precio

Cuando presupuestes y planifiques la capacidad de tus cargas de trabajo, ten en cuenta cómo Compute Engine factura las CPUs virtuales y los modelos de descuento disponibles.

Nivel de detalle de la facturación de recursos

En la mayoría de las series de máquinas, Compute Engine factura las CPU virtuales y la memoria del sistema como recursos dedicados independientes. Pagas por las instancias por segundo, con una duración de facturación mínima de 1 minuto para cada instancia de procesamiento que inicies. Después del primer minuto, pagas solo por los segundos exactos que tu instancia permanece en ejecución.

En el caso de los tipos de máquinas de núcleo compartido (como E2 y N1), Compute Engine agrupa las CPUs virtuales y la memoria en una sola tarifa por hora combinada, en lugar de facturarlas como recursos individuales.

Puedes revisar las tarifas de facturación de las CPUs virtuales en las páginas de precios de instancias de VM.

Optimización de costos y descuentos

Puedes reducir los costos de facturación de las CPU virtuales con las siguientes opciones de precios:

  • Descuentos por compromiso de uso (CUD): Si tus cargas de trabajo tienen requisitos de CPU virtuales predecibles y estables, puedes comprar compromisos de 1 o 3 años para recibir descuentos de hasta un 55% a un 70% de descuento en los precios a pedido. Compute Engine ofrece CUD basados en recursos para series de máquinas específicas en una región y CUD flexibles basados en la inversión que se aplican a varias series de máquinas y regiones. Puedes compartir los CUD entre proyectos dentro de tu cuenta de Facturación de Cloud.
  • Descuentos por uso continuo (SUD): Para las series de máquinas aptas (como N1, N2, N2D, C2, M1 y M2), Compute Engine aplica automáticamente los SUD cuando tus CPUs virtuales se ejecutan durante más del 25% de un mes de facturación. Ejecutar una instancia de VM de forma continua durante todo el mes proporciona un descuento de hasta un 20% o un 30%, según la serie de máquinas. Las series de máquinas con precios a pedido más bajos (incluidas E2, N4, C3, C4, Tau T2A y A3) no ofrecen SUD.
  • VMs Spot: Para las cargas de trabajo tolerantes a errores, sin estado o por lotes, las VMs Spot ofrecen hasta un 60% a un 91% de descuento en los precios de las vCPU a pedido estándar. Compute Engine puede detener o reclamar las VMs Spot en cualquier momento para recuperar capacidad.
  • Nodos de usuario único y exceso de compromiso de CPU virtuales: Cuando ejecutas instancias de VM en nodos de usuario único, pagas por el servidor host físico dedicado, en lugar de las CPU virtuales individuales. En los nodos de usuario único, puedes configurar el exceso de compromiso de CPU (hasta una proporción de 2:1) para programar más CPUs virtuales en tus instancias de VM que los núcleos que tiene el host físico, lo que reduce los costos de procesamiento para los entornos de desarrollador o de prueba.
  • Programador dinámico de cargas de trabajo (DWS): Para las cargas de trabajo de IA o AA, puedes optimizar los costos de las CPUs virtuales y mejorar la disponibilidad de los recursos con DWS.
    • VMs de inicio flexible: Se usan para la programación rentable y flexible de cargas de trabajo que se ejecutan durante un máximo de 7 días.
    • Solicitudes de reserva futuras en el modo de calendario: Se usan para reservar recursos por hasta 90 días en una fecha y hora futuras específicas.
  • Recomendaciones de redimensionamiento: Compute Engine analiza las métricas históricas de uso de CPU virtuales y proporciona recomendaciones automatizadas de tipo de máquina y de instancias de procesamiento inactivas. Aplicar estas recomendaciones te ayuda a cambiar el tamaño de las CPUs virtuales con aprovisionamiento excesivo o a detener las instancias inactivas.

Disponibilidad de las series de máquinas

En la siguiente tabla, se asignan los modelos de arquitectura de CPU virtuales, las proporciones de multiprocesamiento y los recuentos máximos de CPU virtuales en las series de máquinas de Compute Engine. Los recuentos máximos de CPU virtuales reflejan el tipo de máquina más grande de cada serie, incluidas las instancias de equipos físicos.

Familia de máquinas Series de máquinas Arquitectura del procesador Proporción de CPU virtuales por núcleo Máx. CPU virt. Opción con núcleo compartido
De uso general E2 Intel Xeon / AMD EPYC 2 CPU virtuales : 1 núcleo (SMT) 32 CPU virtuales Sí (e2-micro, e2-small, e2-medium)
De uso general N1 Varias generaciones de procesadores Intel Xeon 2 CPU virtuales : 1 núcleo (SMT) 96 CPUs virtuales Sí (f1-micro, g1-small)
De uso general N2 Intel Xeon (Cascade Lake / Ice Lake) 2 CPU virtuales : 1 núcleo (SMT) 128 CPU virtuales No
De uso general N2D AMD EPYC (Rome / Milan) 2 CPU virtuales : 1 núcleo (SMT) 224 CPU virtuales No
De uso general N4 Intel Xeon de 5ª gen. (Emerald Rapids) 2 CPU virtuales : 1 núcleo (SMT) 80 vCPUs No
De uso general N4D AMD EPYC de 5ª gen. (Turin) 2 CPU virtuales : 1 núcleo (SMT) 96 CPUs virtuales No
De uso general N4A Google Axion (Arm64) 1 CPU virtual : 1 núcleo (sin SMT) 64 CPUs virtuales No
De uso general C3 Intel Xeon de 4ª gen. (Sapphire Rapids) 2 CPU virtuales : 1 núcleo (SMT) 176 CPUs virtuales No
De uso general C3D AMD EPYC de 4ª gen. (Genoa) 2 CPU virtuales : 1 núcleo (SMT) 360 CPUs virtuales No
De uso general C4 Intel Xeon de 5ª gen. (Emerald Rapids) e Intel Xeon de 6ª gen. (Granite Rapids) 2 CPU virtuales : 1 núcleo (SMT) 288 CPUs virtuales No
De uso general C4A Google Axion (Arm64) 1 CPU virtual : 1 núcleo (sin SMT) 96 CPUs virtuales No
De uso general C4D AMD EPYC de 5ª gen. (Turin) 2 CPU virtuales : 1 núcleo (SMT) 384 CPUs virtuales No
De uso general Tau T2A Ampere Altra (Arm64) 1 CPU virtual : 1 núcleo (sin SMT) 48 CPU virtuales No
De uso general Tau T2D AMD EPYC de 3ª gen. (Milan) 1 CPU virtual : 1 núcleo (SMT inhabilitado) 60 CPU virtuales No
Optimizada para procesamiento C2 Intel Xeon (Cascade Lake) 2 CPU virtuales : 1 núcleo (SMT) 60 CPU virtuales No
Optimizada para procesamiento C2D AMD EPYC (Milan) 2 CPU virtuales : 1 núcleo (SMT) 112 CPUs virtuales No
Optimizada para procesamiento H3 Intel Xeon de 4ª gen. (Sapphire Rapids) 1 CPU virtual : 1 núcleo (sin SMT) 88 CPUs virtuales No
Optimizada para procesamiento H4D AMD EPYC de 5ª gen. (Turin) 1 CPU virtual : 1 núcleo (sin SMT) 192 CPUs virtuales No
Con optimización de red C4N Intel Xeon de 5ª gen. (Emerald Rapids) 2 CPU virtuales : 1 núcleo (SMT) 192 CPUs virtuales No
Con optimización de memoria X4 Intel Xeon de 4ª gen. (Sapphire Rapids) 2 CPU virtuales : 1 núcleo (SMT) 1,920 CPUs virtuales No
Con optimización de memoria M1 Intel Xeon (Skylake y Broadwell) 2 CPU virtuales : 1 núcleo (SMT) 160 CPUs virtuales No
Con optimización de memoria M2 Intel Xeon de 2ª gen. (Cascade Lake) 2 CPU virtuales : 1 núcleo (SMT) 416 CPUs virtuales No
Con optimización de memoria M3 Intel Xeon de 3ª gen. (Ice Lake) 2 CPU virtuales : 1 núcleo (SMT) 128 CPU virtuales No
Con optimización de memoria M4/M4N Intel Xeon de 5ª gen. (Emerald Rapids) 2 CPU virtuales : 1 núcleo (SMT) 224 CPU virtuales No
Optimizada para el almacenamiento Z3 Intel Xeon de 4ª gen. (Sapphire Rapids) 2 CPU virtuales : 1 núcleo (SMT) 192 CPUs virtuales No
Optimizada para almacenamiento Z4D AMD EPYC de 5ª gen. (Turin) 2 CPU virtuales : 1 núcleo (SMT) 288 CPUs virtuales No
Optimizada para almacenamiento Z4M Intel Xeon de 5ª gen. (Emerald Rapids) 1 CPU virtual : 1 núcleo (sin SMT) 192 CPUs virtuales No
Con optimización de acelerador A4X Max NVIDIA Grace 1 CPU virtual : 1 núcleo (sin SMT) 144 CPUs virtuales No
Con optimización de acelerador A4X NVIDIA Grace 1 CPU virtual : 1 núcleo (sin SMT) 140 CPUs virtuales No
Con optimización de acelerador A4 Intel Xeon de 5ª gen. (Emerald Rapids) con GPU de NVIDIA 2 CPU virtuales : 1 núcleo (SMT) 224 CPU virtuales No
Con optimización de acelerador A3 Intel Xeon (Emerald Rapids y Sapphire Rapids) vinculados con GPU de NVIDIA 2 CPU virtuales : 1 núcleo (SMT) 224 CPU virtuales No
Con optimización de acelerador A2 Intel Xeon de 2ª gen. (Cascade Lake) con GPU de NVIDIA 2 CPU virtuales : 1 núcleo (SMT) 96 CPUs virtuales No
Con optimización de acelerador G4 AMD EPYC de 5ª gen. (Turin) con GPUs de NVIDIA 2 CPU virtuales : 1 núcleo (SMT) 384 CPUs virtuales No
Con optimización de acelerador G2 Intel Xeon de 2ª gen. (Cascade Lake) con GPU de NVIDIA 2 CPU virtuales : 1 núcleo (SMT) 96 CPUs virtuales No

Para obtener especificaciones detalladas sobre la memoria por CPU virtual, el ancho de banda de red y la compatibilidad con discos locales en todas las series, consulta la Guía de recursos de máquinas.

¿Qué sigue?