Especifica 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 procesadores de CPU de Intel y AMD.

Especificar una plataforma de CPU mínima es útil si tu carga de trabajo requiere los aumentos 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.

Cada plataforma de CPU es compatible con funciones nuevas como las extensiones vectoriales avanzadas, por ejemplo, AVX2 y AVX-512. 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.

Antes de comenzar

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 que Google retira o actualiza ocasionalmente. Si creas una VM sin una especificación de CPU mínima, la VM obtiene la plataforma de CPU predeterminada.

Google recomienda que solo selecciones una plataforma de CPU mínima si ofrece ganancias de rendimiento significativas para tu carga de trabajo o si proporciona funciones que usa el código, como AVX2 o AVX-512. 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

Cuando especifiques una plataforma de CPU mínima, ten en cuenta lo siguiente:

  • Compute Engine siempre usa la plataforma de CPU mínima cuando está disponible.
  • Si Google retira o actualiza 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. El retiro de plataformas de CPU ocurre con poca frecuencia. Google te notifica antes de que retire o actualice una plataforma de CPU.

Después de seleccionar una plataforma de CPU mínima para una VM, se produce el siguiente comportamiento:

  • La VM 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.

Retira o actualiza una plataforma de CPU predeterminada

En ocasiones, Google retira una plataforma de CPU o actualiza la plataforma de CPU predeterminada en una zona en particular. Se aplican los siguientes motivos:

  • Una zona aumenta su capacidad en el tiempo y cambia a una plataforma de CPU nueva cuando esta está disponible.
  • Cada 3 a 5 años, Google reemplaza las plataformas de CPU anteriores por versiones nuevas y actualiza la plataforma de CPU predeterminada a la siguiente plataforma nueva que está disponible en esa zona.

En cualquier momento, cuando se compila una región o una zona nueva, usará la plataforma de CPU más nueva.

Cuando se retira una zona o se cambia una plataforma de CPU predeterminada para una zona, Google notificará a los clientes afectados y proporcionará 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.

Limitaciones

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 familia 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" en Vista previa.
  • 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"
  • Procesadores AMD EPYC Rome: “Amd Epyc Rome"

Ten en cuenta lo siguiente:

  • Solo ciertas zonas contienen varias plataformas de CPU 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 con el comando gcloud compute zones describe o mediante una solicitud a la API.
  • 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. Como resultado, no puedes especificar una plataforma de CPU mínima para las VM que usan nodos de usuario único.

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, us-west1-a.

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

    gcloud compute zones describe us-west1-a
    availableCpuPlatforms:
    - Intel Skylake
    - Intel Broadwell
    ...
    

API

  • En la API de Compute Engine, realiza una solicitud GET 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": "2016-06-10T09:30:55.189-07:00",
      "name": "us-west1-a",
      "description": "us-west1-a",
      "status": "UP",
      "region": "https://www.googleapis.com/compute/v1/projects/myproject/regions/us-west1",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-west1-a",
      "availableCpuPlatforms": [
       "Intel Broadwell",
       "Intel Haswell"
      ]
     }

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

Puedes especificar una plataforma de CPU mínima durante la creación de una instancia.

Console

  1. En Google Cloud Console, ve a la página Crear una instancia.

    Ir a Crear una instancia

  2. En la sección Configuración de la máquina, expande la sección Plataforma de CPU y GPU y, luego, haz lo siguiente:

    1. En la lista Plataforma de CPU, selecciona una plataforma para la CPU de la VM.
  3. 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.

API

  • En la API de Compute Engine, incluye 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 instancia 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 instancia, por ejemplo, Intel Ivy Bridge.

      Si quieres 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 instancia existente. Primero detienes la instancia y, luego, estableces la plataforma de CPU mínima.

Console

  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 instancia, haz clic en Editar.

  6. En la sección Configuración de la máquina, haz clic en Plataforma de CPU y GPU.

  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 instancia para la que deseas especificar una plataforma de CPU mínima.

  2. Para especificar una plataforma de CPU mínima, usa el comando gcloud compute instances update 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 instancia, por ejemplo, Intel Cascade Lake.

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

    gcloud compute instances start INSTANCE
    

API

  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 instancia para la que deseas especificar una plataforma de CPU mínima.
  2. Para establecer la plataforma de CPU mínima en la API, realiza una solicitud POST al método setMinCpuPlatform 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 instancia, 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 instancia para usar la plataforma de CPU predeterminada en lugar de la plataforma de CPU mínima. Si la instancia está en ejecución, debes detenerla antes de realizar cambios.

Console

  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 instancia, haz clic en Editar.

  6. En la sección Configuración de la máquina, haz clic en Plataforma de CPU y GPU.

  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 instancia 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
    

API

  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 instancia que deseas cambiar.
  2. Para restablecer la plataforma de CPU mínima, realiza una solicitud POST al método setMinCpuPlatform. 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 comando gcloud compute instances start:

    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 instancias de VM 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. Haga clic en Crear plantilla de instancias.

  4. En la sección Configuración de la máquina, haz clic en Plataforma de CPU y GPU.

  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.

API

  • En la API, agrega minCpuPlatform como parte de tu solicitud para crear una nueva plantilla de instancias en la API de Compute Engine.

    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/n1-standard-2",
      "minCpuPlatform": "Intel Haswell",
      "networkInterfaces": [
        {
          "network": "global/networks/default",
          "accessConfigs":
          [
            {
              "type": "PERSISTENT",
              "boot": true,
              "mode": "READ_WRITE",
              "initializeParams":
              {
                "sourceImage": "projects/debian-cloud/global/images/family/debian-10"
              }
            }
          ]
        }
      ],
      "disks":
      [
        {
          "type": "PERSISTENT",
          "boot": true,
          "mode": "READ_WRITE",
          "initializeParams":
          {
            "sourceImage": "projects/debian-cloud/global/images/family/debian-10"
          }
        }
      ]
      }
    }

¿Qué sigue?