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


En este documento, se explica cómo crear o actualizar una instancia de máquina virtual (VM) para usar una plataforma de CPU mínima de modelo de referencia (minCpuPlatform) siempre que esté disponible.

Los centros de datos de Google ofrecen máquinas anfitrionas con Intel Xeon que contienen plataformas de CPU Sandy Bridge, Ivy Bridge, Haswell, Broadwell o Skylake, además de procesadores AMD EPYC Rome. Cada plataforma de CPU es compatible con funciones nuevas como AVX-2, AVX-512 y así sucesivamente. 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. Las diferentes zonas admiten varias plataformas de CPU, y puedes seleccionar una plataforma de CPU para tus instancias de VM que, con una selección de plataforma mínima, sean compatibles con las necesidades específicas de tus cargas de trabajo.

Para obtener más información sobre las plataformas de CPU disponibles en cada zona, consulta la documentación Plataformas de CPU y Regiones y zonas.

Antes de comenzar

Cuándo seleccionar una plataforma de CPU mínima

Es probable que no tengas que seleccionar plataformas de CPU mínima para tus VM. Cada zona de Compute Engine tiene una plataforma de CPU predeterminada que Google retira o actualiza ocasionalmente. Todas las VM creadas sin una especificación de CPU mínima obtienen de forma automática la plataforma de CPU predeterminada.

Google recomienda que solo selecciones una plataforma de CPU mínima cuando supone ventajas de rendimiento significativas para tu carga de trabajo o si proporciona ciertas funciones como AVX-2, AVX-512 o MPX usadas por el código. La selección de una plataforma de CPU mínima específica para la VM agrega restricciones adicionales que afectan tu capacidad de iniciar VM en ciertas 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 especificas una plataforma de CPU mínima, sucede lo siguiente:

  • Compute Engine siempre usa la plataforma de CPU mínima cuando está disponible.

  • Si Compute Engine retira una plataforma de CPU de una zona, la VM puede continuar con su ejecución en una plataforma de CPU mejor que esté disponible en esa zona; para ello, debes detener y reiniciar la VM. El retiro de plataformas de CPU es poco frecuente y se te notificará con anticipación.

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 mantiene la misma 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 con versiones nuevas y actualiza la plataforma de CPU predeterminada a la siguiente plataforma nueva 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 en ese momento.

Cuando se retira una zona o se cambia una plataforma de CPU predeterminada para una zona, Google notificará a los clientes afectados por adelantado 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, y el costo de la VM no cambia si Compute Engine realiza la transición de la VM a una plataforma más reciente.

Especificaciones

Limitaciones

Los tipos predefinidos de máquinas e2-micro, e2-small, e2-medium, f1-micro y g1-small son VM de uso general con núcleo compartido. No tienes las opciones de selección de plataforma de CPU cuando seleccionas cualquiera de estos tipos de máquinas.

Disponibilidad

La disponibilidad de plataformas de CPU específicas varía según la zona y se basa en el hardware 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:

  • Procesadores Intel Xeon E5 (Sandy Bridge): "Intel Sandy Bridge"
  • Procesadores Intel Xeon E5 v2 (Ivy Bridge): "Intel Ivy Bridge"
  • Procesadores Intel Xeon E5 v3 (Haswell): "Intel Haswell"
  • Procesadores Intel Xeon E5 v4 (Broadwell): "Intel Broadwell"
  • Procesadores Intel Xeon (Cascade Lake): "Intel Cascade Lake"
  • Procesadores Intel Xeon (Skylake): "Intel Skylake"

Solo ciertas zonas contienen varias plataformas de CPU y están disponibles para la selección de plataforma de CPU mínima. 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.

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.

gcloud

Para ver las plataformas de CPU en tu zona, usa el siguiente comando:

gcloud compute zones describe ZONE

Por ejemplo, el resultado de este comando muestra 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, realiza una solicitud GET a la zona en cuestión:

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

La respuesta contiene una lista de las plataformas de CPU admitidas en esa zona. Como en el siguiente ejemplo:

{
  "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 Instancias de VM.

    Ir a Instancias de VM

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

  3. Haz clic en el botón Crear instancia.

  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 resto del proceso de creación de la instancia.

gcloud

Para crear una VM nueva con una plataforma de CPU mínima, proporciona la marca --min-cpu-platform. Cuando especificas la plataforma de CPU, proporciona la plataforma con un nombre descriptivo, como Intel Broadwell o Intel Haswell. Usa la sección zonas disponibles para determinar las plataformas disponibles en cada zona.

Por ejemplo, para especificar una plataforma de CPU mínima de Intel Haswell, sigue estos pasos:

gcloud compute instances create example-instance \
        --zone=europe-west1-b \
        --min-cpu-platform="Intel Haswell"

Si quieres borrar la especificación de plataforma de CPU mínima, establece --min-cpu-platform en AUTOMATIC.

API

En la API de Compute Engine, incluye la propiedad minCpuPlatform como parte del cuerpo de la solicitud. El valor de minCpuPlatform debe ser el nombre descriptivo de la plataforma, como Intel Haswell, Intel Broadwell o Intel Sandy Bridge.

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

"name": "VM_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
"minCpuPlatform": "Intel Haswell",
"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"
   }
 }]

Si quieres borrar la especificación de plataforma de CPU mínima, establece minCpuPlatform en AUTOMATIC.

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

Puedes establecer una plataforma de CPU mínima para una instancia existente si primero detienes la instancia.

Después de detener la instancia, completa las siguientes instrucciones para establecer una plataforma de CPU mínima.

Console

  1. En Google Cloud Console, 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 instancia detenida que deseas cambiar.

  4. Haz clic en Editar para editar la instancia.

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

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

  7. Guarda los cambios.

  8. Reinicia la instancia.

gcloud

  1. Usa el subcomando update, seguido de la marca --min-cpu-platform. Especifica el nombre descriptivo de las plataformas, como Intel Haswell, Intel Broadwell o Intel Sandy Bridge. Por ejemplo:

    gcloud compute instances update INSTANCE_NAME \
       --min-cpu-platform="Intel Haswell"
  2. Reinicia la instancia.

API

  1. 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. El valor de la propiedad es el nombre descriptivo de la plataforma de CPU, como Intel Haswell, Intel Broadwell y Intel Sandy Bridge. Por ejemplo:

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

    Este es el resultado:

    {
      "minCpuPlatform": "Intel Haswell"
    }
    1. Reinicia la instancia.

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. En Google Cloud Console, ve a la página Plantillas de instancia.

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

Proporciona la marca --min-cpu-platform cuando crees una plantilla de instancias. Por ejemplo:

gcloud compute instance-templates create example-template \
    --min-cpu-platform="Intel Haswell"

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-9"
          }
        }
      ]
    }
  ],
  "disks":
  [
    {
      "type": "PERSISTENT",
      "boot": true,
      "mode": "READ_WRITE",
      "initializeParams":
      {
        "sourceImage": "projects/debian-cloud/global/images/family/debian-8"
      }
    }
  ]
  }
}

¿Qué sigue?