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 para usar una plataforma de CPU mínima de referencia (minCpuPlatform) siempre que esté disponible.

Los centros de datos de Google ofrecen máquinas host con Intel Xeon que contienen plataformas de CPU Sandy Bridge, Ivy Bridge, Haswell, Broadwell y Skylake. 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, incluida en la documentación de Regiones y zonas. Todas las VM creadas sin una especificación de CPU mínima obtendrán la plataforma de CPU predeterminada de forma automática.

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 AVX2, AVX512 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.

Una vez que elijas una plataforma de CPU mínima para una VM, sucederá lo siguiente:

  • La VM usará esta plataforma de CPU, a menos que la detengas y cambies la plataforma.
  • Durante una migración en vivo, la VM mantiene la misma plataforma de CPU seleccionada.
  • En ocasiones, Google puede actualizar la plataforma de CPU predeterminada para una zona. Consulta Retira o actualiza una plataforma de CPU predeterminada para obtener más información.

Retira o actualiza una plataforma de CPU predeterminada

En ocasiones, Google retirará una plataforma de CPU anterior o actualizará la plataforma de CPU predeterminada en una zona en particular por 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 jamás usarán una plataforma anterior a la plataforma de CPU mínima que especificas, y el costo de la VM no cambiara si Compute Engine transiciona tu VM a una plataforma más reciente.

Especificaciones

Limitaciones

  • Los tipos predefinidos de máquinas f1-small y g1-small son VM de uso general con núcleo compartido. No tienen las opciones de selección de plataforma de CPU.

Disponibilidad

La disponibilidad de plataformas de CPU específicas varía por zona en función del hardware disponible en cada una. A continuación, se incluye una lista de las plataformas de CPU mínimas compatibles y la sintaxis válida para cada una:

  • Procesadores Intel Xeon (Skylake): "Intel Skylake"
  • 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"

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 mediante 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. Ve a la página Instancias de VM.

    Ir a la página 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. Selecciona una opción del menú desplegable Plataforma de CPU.
  6. Continúa con el resto del proceso de creación de la instancia.

gcloud

Para crear una VM con una plataforma de CPU mínima con la herramienta de línea de comandos de gcloud, proporciona la nueva marca --min-cpu-platform. Cuando especificas la plataforma de CPU, proporciona la plataforma con un nombre descriptivo, como Intel Broadwell y 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 y Intel Sandy Bridge.

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

"name": "[INSTANCE_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.

Luego de detener la instancia, sigue las instrucciones a continuación para establecer una plataforma de CPU mínima y asegúrate de reiniciar la instancia.

Console

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

    Ir a la página 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. Selecciona una opción del menú desplegable Plataforma de CPU.
  7. Guarda los cambios.
  8. Reinicia la instancia.

gcloud

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

gcloud compute instances update [INSTANCE_NAME] \
    --min-cpu-platform "Intel Haswell"

API

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

{
  "minCpuPlatform": "Intel Haswell"
}

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. Dirígete a la página Plantillas de instancias.

    Ir a la página Plantillas de instancias

  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. Selecciona una opción del menú desplegable Plataforma de CPU.
  6. Continúa con el proceso de creación de plantillas de instancias.

gcloud

Con la herramienta de 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.

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

Próximos pasos