Especificar una plataforma de CPU mínima para instancias de VM


En esta página, se explica cómo crear o actualizar una instancia de máquina virtual (VM) para usar una plataforma de CPU mínima en lugar de la plataforma predeterminada.

Los centros de datos de Google ofrecen diferentes generaciones de procesadores de CPU. Cada plataforma de CPU es compatible con funciones nuevas como las extensiones vectoriales avanzadas, por ejemplo, AVX2 y AVX-512. Además, algunas funciones fundamentales relacionadas con los sistemas, como la frecuencia de reloj y el tiempo de búsqueda de acceso a la memoria pueden variar entre plataformas de CPU.

Cada serie de máquinas está asociada con una o más plataformas de CPU. Por ejemplo, las VM N2 pueden ejecutarse en las CPU Ice Lake o Cascade Lake. Si hay varias plataformas de CPU disponibles para una serie de máquinas, puedes seleccionar una plataforma de CPU mínima cuando creas una VM con un tipo de máquina de esa serie de máquinas. La disponibilidad de la familia de máquinas, las series, la región y las zonas determina lo que puedes elegir para la plataforma de CPU mínima.

Especificar una plataforma de CPU mínima es útil si tu carga de trabajo requiere el aumento de rendimiento que ofrece la generación de un procesador específico. Sin embargo, especificar una plataforma de CPU mínima puede limitar las zonas en las que puedes crear tus VM.

Antes de empezar

  • Configura la autenticación si aún no lo hiciste. 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 código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

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

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

Roles y permisos requeridos

A fin de obtener los permisos que necesitas para cambiar la plataforma de CPU mínima, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:

  • Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1)
  • Para conectarte a una VM que puede ejecutarse como una cuenta de servicio: Cuenta de servicio Usuario (v1) (rol roles/iam.serviceAccountUser)

Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.

También puedes obtener los permisos necesarios a través de funciones personalizadas o cualquier otro rol predefinido.

Cuándo seleccionar una plataforma de CPU mínima

Es probable que no tengas que seleccionar una plataforma de CPU mínima. Cada zona de Compute Engine tiene una plataforma de CPU predeterminada para cada serie de máquinas. En ocasiones, Google cambia la CPU predeterminada de una zona cuando se agregan servidores nuevos. Si no especificas una plataforma de CPU mínima para una VM, la VM obtiene la plataforma de CPU predeterminada asociada con su tipo y zona de máquina.

Google recomienda que solo selecciones una plataforma de CPU mínima en los siguientes casos:

  • Cuando la plataforma de CPU mínima ofrece ganancias de rendimiento significativas para tu carga de trabajo o si proporciona capacidades que usa tu código, como AVX2 o AVX-512.
  • Cuando creas VMs que consumen reservas, debes especificar la misma plataforma de CPU que la reserva.

La selección de una plataforma de CPU mínima para tu VM agrega restricciones que afectan tu capacidad de iniciar VM en zonas en las que hay disponibilidad limitada de algunas plataformas de CPU.

Cómo funciona la selección de una plataforma de CPU mínima

Compute Engine siempre usa la plataforma de CPU mínima cuando está disponible. Si Google cambia una plataforma de CPU en una zona, la VM puede seguir ejecutándose en una plataforma de CPU más reciente que esté disponible en esa zona si detienes y reinicias la VM.

Después de seleccionar una plataforma de CPU mínima para una VM, esta usa esta plataforma de CPU, a menos que la detengas y cambies la plataforma de CPU. Durante una migración en vivo, la VM conserva la plataforma de CPU seleccionada.

Limitaciones

  • Cada región y zona admite varias plataformas de CPU, pero una región o zona podría no ofrecer todas las plataformas de CPU.
  • No puedes especificar una plataforma de CPU mínima para las VM que usan nodos de usuario único.
  • No puedes seleccionar una plataforma de CPU mínima para VM predefinidas o personalizadas de E2.
  • No puedes seleccionar una plataforma de CPU mínima para las siguientes VM con núcleo compartido y de uso general:
    • e2-micro
    • e2-small
    • e2-medium
    • f1-micro
    • g1-small

Disponibilidad de las plataformas de CPU

La disponibilidad de las plataformas de CPU varía entre zonas y se basa en el hardware y la serie de máquinas que está disponible en cada zona. En la siguiente lista, se muestran las plataformas de CPU mínimas compatibles y la sintaxis válida para cada una:

  • Tercera generación: Procesadores Intel Xeon (Ice Lake): "Intel Ice Lake"
  • Segunda generación: procesadores Intel Xeon (Cascade Lake): "Intel Cascade Lake"
  • Primera generación: procesadores Intel Xeon (Skylake): "Intel Skylake"
  • Procesadores Intel Xeon E5 v4 (Broadwell): "Intel Broadwell"
  • Procesadores Intel Xeon E5 v3 (Haswell): "Intel Haswell"
  • Procesadores Intel Xeon E5 v2 (Ivy Bridge): "Intel Ivy Bridge"
  • Procesadores Intel Xeon E5 (Sandy Bridge): "Intel Sandy Bridge"
  • Cuarta generación: Procesadores AMD EPYC Genoa: "AMD Genoa"
  • Tercera generación: Procesadores AMD EPYC Milan: "AMD Milan"
  • Segunda generación: Procesadores AMD EPYC Rome: "AMD Rome"

Visualiza las plataformas de CPU disponibles por zona

Solo ciertas regiones y zonas contienen varias plataformas de CPU para la misma serie de máquinas y están disponibles para la selección de plataforma de CPU mínima. Puedes ver una lista de plataformas compatibles para una zona específica mediante la CLI de gcloud o REST.

Si usas nodos de usuario único, cada nodo usa la plataforma de CPU correspondiente al tipo de nodo que definiste en la plantilla de nodo.

gcloud

  • Para ver las plataformas de CPU que están disponibles en tu zona, usa el comando gcloud compute zones describe:

    gcloud compute zones describe ZONE
    

    Reemplaza ZONE por el nombre de la zona a fin de verificar las plataformas de CPU disponibles, por ejemplo, europe-west10-a.

    En el siguiente resultado de este comando, se muestran las plataformas de CPU para la zona europe-west10-a:

    gcloud compute zones describe europe-west10-a
    availableCpuPlatforms:
    - Intel Broadwell
    - Intel Cascade Lake
    - Intel Ice Lake
    - AMD Milan
    - AMD Rome
    - Intel Skylake
    
    ...
    

REST

  • Realiza una GETsolicitud a la zona que consideras:

    GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/ZONE
    

    Reemplaza ZONE por el nombre de la zona a fin de verificar las plataformas de CPU disponibles.

    En el siguiente resultado de este comando, se muestran las plataformas de CPU compatibles para una zona:

    {
      "kind": "compute#zone",
      "id": "2210",
      "creationTimestamp": "1969-12-31T09:30:55.189-07:00",
      "name": "europe-west10-a",
      "description": "europe-west10-a",
      "status": "UP",
      "region": "https://www.googleapis.com/compute/v1/projects/myproject/regions/europe-west10-a",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/europe-west10-a",
      "availableCpuPlatforms": [
       "Intel Broadwell",
       "Intel Cascade Lake",
       "Intel Ice Lake",
       "AMD Milan",
       "AMD Rome",
       "Intel Skylake"
      ],
      "supportsPzs": true
     }

Cambios predeterminados en una plataforma de CPU

En ocasiones, Google cambia una plataforma de CPU o actualiza la plataforma de CPU predeterminada. A medida que una zona aumenta su capacidad, Google cambia de forma proactiva a una plataforma de CPU más nueva a medida que esta está disponible. Actualiza la plataforma de CPU predeterminada a la siguiente más reciente disponible en esa zona.

Cuando una plataforma de CPU predeterminada cambia para una zona, Google notifica a los clientes afectados con un cronograma detallado y, además, instrucciones específicas para realizar la transición a la plataforma nueva.

Las VM nunca usan una plataforma anterior a la plataforma de CPU mínima que especificas. Si Compute Engine realiza la transición de tu VM a una plataforma más reciente, el costo de la VM no cambia.

Selecciona una plataforma de CPU mínima para una VM nueva

Cuando creas una VM, debes elegir una serie y un tipo de máquina. La serie de máquinas puede ofrecerse en más de una plataforma de CPU. En este caso, puedes especificar la plataforma de CPU mínima que deseas que use la VM.

Consola

  1. En la consola de Google Cloud, ve a la página Crea una instancia.

    Ir a Crear una instancia

  2. En la sección Configuración de la máquina, expande la sección Configuración avanzada.

  3. En la lista Plataforma de CPU, selecciona una plataforma para la CPU de la VM.

  4. Continúa con el resto del proceso de creación de la VM.

gcloud

  • Para crear una VM que use una plataforma de CPU mínima, usa el comando gcloud compute instances create y proporciona la marca --min-cpu-platform:

    gcloud compute instances create INSTANCE \
        --zone=ZONE \
        --min-cpu-platform="PLATFORM"

    Reemplaza lo siguiente:

    • INSTANCE: es el nombre de la instancia que deseas crear.
    • ZONE: es el nombre de la zona en la que deseas crear tu instancia, por ejemplo, europe-west1-b.
    • PLATFORM: es el nombre descriptivo de la plataforma de CPU mínima que deseas que use la instancia, por ejemplo, Intel Sandy Bridge.

      Si quieres borrar la especificación de plataforma de CPU mínima, reemplaza PLATFORM por AUTOMATIC.

      Usa la sección zonas disponibles para determinar las plataformas disponibles en cada zona.

REST

  • Usa el instances.insertmétodo y asegúrate de incluir la propiedad minCpuPlatform como parte del cuerpo de la solicitud.

    Por ejemplo, el cuerpo de una solicitud puede verse de la siguiente manera:

    "name": "INSTANCE",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "minCpuPlatform": "PLATFORM",
    "networkInterfaces": [{
      "accessConfigs": [{
        "type": "ONE_TO_ONE_NAT",
        "name": "External NAT"
       }],
      "network": "global/networks/default"
    }],
    "disks": [{
       "autoDelete": "true",
       "boot": "true",
       "type": "PERSISTENT",
       "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
       }
     }]

    Reemplaza lo siguiente:

    • INSTANCE: es el nombre de la VM nueva
    • ZONE: es el nombre de la zona en la que deseas crear tu VM, por ejemplo, europe-west1-b
    • MACHINE_TYPE: es el tipo de máquina de la VM nueva
    • PLATFORM: es el nombre descriptivo de la plataforma de CPU mínima que deseas que use la VM, por ejemplo, Intel Ivy Bridge

      Para borrar la especificación de plataforma de CPU mínima, reemplaza PLATFORM por AUTOMATIC.

    • IMAGE_PROJECT: es el proyecto de imagen de la familia de imágenes

    • IMAGE_FAMILY: es la familia de imágenes de la imagen que se usará para crear la VM

Configura una plataforma de CPU mínima para una VM existente

Puedes establecer una plataforma de CPU mínima para una VM existente. Debes detener la VM antes de configurar la plataforma de CPU mínima.

Consola

  1. Ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Si se te solicita, selecciona el proyecto y haz clic en Continuar.

  3. Selecciona la VM que deseas cambiar.

  4. Haz clic en Detener.

  5. Para editar la VM, haz clic en Editar.

  6. En la sección Configuración de máquina, haz clic en Configuraciones avanzadas.

  7. En el menú desplegable Plataforma de CPU, selecciona una opción.

  8. Guarda los cambios.

  9. Selecciona la VM que cambiaste.

  10. Haz clic en Iniciar/Reanudar.

gcloud

  1. Para detener una VM, usa el comando gcloud compute instances stop:

    gcloud compute instances stop INSTANCE
    

    Reemplaza INSTANCE por el nombre de la VM para la que deseas especificar una plataforma de CPU mínima.

  2. Para especificar una plataforma de CPU mínima, usa el gcloud compute instances update comando y proporciona la marca --min-cpu-platform:

    gcloud compute instances update INSTANCE \
        --min-cpu-platform="PLATFORM"

    Reemplaza PLATFORM por el nombre descriptivo de la plataforma de CPU mínima que deseas que use la VM, por ejemplo, Intel Cascade Lake.

  3. Para iniciar la VM actualizada, usa el comando gcloud compute instances start:

    gcloud compute instances start INSTANCE
    

REST

  1. Para detener una VM, crea una solicitud POST mediante el método instances.stop:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/stop
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto
    • ZONE: La zona en la que se encuentra la VM
    • INSTANCE: Es el nombre de la VM para la que deseas especificar una plataforma de CPU mínima
  2. Para establecer la plataforma de CPU mínima, crea una solicitud POST para el setMinCpuPlatform método y configura la propiedad minCpuPlatform en el cuerpo de la solicitud:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/setMinCpuPlatform
    {
      "minCpuPlatform": PLATFORM
    }
    

    Reemplaza PLATFORM por el nombre descriptivo de la plataforma de CPU mínima que deseas que use la VM, por ejemplo, Intel Skylake.

  3. Para reiniciar la VM, crea una solicitud POST mediante el método instances.start:

    POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/start
    

Quita una configuración de plataforma de CPU mínima

Puedes actualizar una VM para usar la plataforma de CPU predeterminada en lugar de la plataforma de CPU mínima. Si la VM está en ejecución, debes detenerla antes de realizar cambios.

Consola

  1. Ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Si se te solicita, selecciona el proyecto y haz clic en Continuar.

  3. Selecciona la VM que deseas cambiar.

  4. Haz clic en Detener.

  5. Para editar la VM, haz clic en Editar.

  6. En la sección Configuración de máquina, haz clic en Configuraciones avanzadas.

  7. Cambia la opción Platform de CPU a Automático.

  8. Selecciona la VM que cambiaste.

  9. Haz clic en Iniciar/Reanudar.

gcloud

  1. Para detener una VM, usa el comando gcloud compute instances stop:

    gcloud compute instances stop INSTANCE
    

    Reemplaza INSTANCE por el nombre de la VM que deseas cambiar.

  2. Para restablecer la plataforma de CPU mínima, usa el comando gcloud compute instances update y establece la marca --min-cpu-platform en AUTOMATIC:

    gcloud compute instances update INSTANCE \
        --min-cpu-platform="AUTOMATIC"
    
  3. Para iniciar la VM actualizada, Usa el comando gcloud compute instances start:

    gcloud compute instances start INSTANCE
    

REST

  1. Para detener una VM, crea una solicitud POST mediante el método instances.stop:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/stop
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto
    • ZONE: La zona en la que se encuentra la VM
    • INSTANCE: Es el nombre de la VM que deseas cambiar.
  2. Para restablecer la plataforma de CPU mínima, realiza unaPOST solicitud al setMinCpuPlatform método. En el cuerpo de la solicitud, establece el valor de la propiedad minCpuPlatform en AUTOMATIC.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/setMinCpuPlatform
    {
      "minCpuPlatform": AUTOMATIC
    }
    
  3. Para iniciar la VM actualizada, usa el gcloud compute instances start comando:

    gcloud compute instances start INSTANCE
    

Especifica una plataforma de CPU mínima en plantillas de instancias

Si usas grupos de instancias administrados, puedes especificar una plataforma de CPU mínima para VMs dentro de un grupo de instancias administrado.

Para especificar una plataforma de CPU mínima, crea una plantilla de instancias que incluya la propiedad minCpuPlatform.

Console

  1. Ve a la página Plantillas de instancias.

    Ir a Plantillas de instancia

  2. Si se te solicita, selecciona el proyecto y haz clic en Continuar.

  3. Haz clic en Crear plantilla de instancias.

  4. En la sección Configuración de máquina, haz clic en Configuraciones avanzadas.

  5. En el menú desplegable Plataforma de CPU, selecciona una opción.

  6. Continúa con el proceso de creación de plantillas de instancias.

gcloud

  • Cuando crees una plantilla de instancias mediante el comando gcloud compute instance-templates create, proporciona la marca --min-cpu-platform:

    gcloud compute instance-templates create TEMPLATE_NAME \
        --min-cpu-platform="PLATFORM"

    Reemplaza lo siguiente:

    • TEMPLATE_NAME: es el nombre de la plantilla de instancias.
    • PLATFORM: es el nombre descriptivo de la plataforma de CPU mínima que deseas que use la instancia, por ejemplo, Intel Skylake.

REST

  • Agrega minCpuPlatform como parte de tu solicitud para crear una nueva plantilla de instancias mediante el instanceTemplates.insert método.

    Por ejemplo, la siguiente plantilla de instancias contiene los campos obligatorios mínimos para crear una plantilla nueva con la adición de la propiedad minCpuPlatform:

    {
    "name": "example-template",
    "properties": {
      "machineType": "zones/us-central1-a/machineTypes/n2d-standard-2",
      "minCpuPlatform": "AMD Milan",
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ],
      "disks":
      [
        {
          "type": "PERSISTENT",
          "boot": true,
          "mode": "READ_WRITE",
          "initializeParams":
          {
            "sourceImage": "projects/debian-cloud/global/images/family/debian-11"
          }
        }
      ]
      }
    }

¿Qué sigue?