Como especificar uma plataforma mínima de CPU para instâncias de VM


Neste documento, explicamos como criar ou atualizar uma instância de máquina virtual para usar uma plataforma mínima de CPU de valor de referência (minCpuPlatform) sempre que disponível.

Os data centers do Google oferecem máquinas host com Intel Xeon que contêm as plataformas de CPU Sandy Bridge, Ivy Bridge, Haswell, Broadwell ou Skylake, bem como processadores AMD EPYC Rome. Cada plataforma de CPU aceita recursos incrementais como AVX-2, AVX-512 etc. Alguns recursos fundamentais relacionados a sistemas, como a velocidade do relógio e o tempo de busca de acesso à memória, podem variar entre as plataformas de CPU. As diferentes zonas aceitam diversas plataformas de CPU. Você pode selecionar uma plataforma de CPU para suas instâncias de VM que atenda às necessidades específicas das suas cargas de trabalho usando a seleção mínima de plataforma.

Para saber mais sobre as plataformas de CPU disponíveis para cada zona, leia as documentações Plataformas de CPU e Regiões e zonas.

Antes de começar

Quando selecionar uma plataforma de CPU mínima

Provavelmente, você não precisará selecionar um mínimo de plataformas de CPU para as VMs. Cada zona do Compute Engine tem uma plataforma de CPU padrão que o Google suspendê ou atualiza de vez em quando. Qualquer VM recém-criada com uma especificação de CPU mínima recebe automaticamente a plataforma de CPU padrão.

O Google recomenda que você selecione uma plataforma de CPU mínima apenas quando isso acarretar ganhos de desempenho significativos para sua carga de trabalho ou fornecer determinados recursos, como AVX-2, AVX-512 ou MPX, utilizados pelo seu código. A seleção de uma plataforma de CPU mínima específica para sua VM apresenta restrições adicionais que afetam a capacidade de iniciar VMs em zonas que estejam com oferta limitada para algumas plataformas de CPU.

Como funciona a seleção de uma plataforma de CPU mínima

Quando você especifica uma plataforma mínima de CPU:

  • O Compute Engine usa essa plataforma sempre que ela está disponível.

  • Se o Compute Engine suspender o uso de uma plataforma de CPU em uma zona, a VM poderá continuar sendo executada em uma plataforma de CPU melhor que esteja disponível nessa zona depois que você interromper e reiniciar a VM. A suspensão de uso de plataformas de CPU é uma situação incomum e costuma ser notificada com antecedência.

Depois de selecionar uma plataforma de CPU mínima para uma VM, o seguinte comportamento ocorrerá:

  • Sua VM usa essa plataforma de CPU, a menos que você interrompa a VM e altere a plataforma da CPU.
  • sua VM manterá a mesma plataforma de CPU selecionada após a migração em tempo real;

Como suspender o uso ou fazer upgrade de uma plataforma de CPU padrão

De vez em quando, o Google suspende o uso de uma plataforma de CPU ou atualiza a plataforma de CPU padrão em uma determinada zona. Os seguintes motivos se aplicam:

  • uma zona cresce em capacidade ao longo do tempo e muda proativamente para uma plataforma de CPU mais nova quando ela é disponibilizada;
  • a cada três a cinco anos, o Google substitui plataformas antigas de CPU por plataformas mais recentes e atualiza a plataforma de CPU padrão para a próxima plataforma mais recente disponível nessa zona.

Quando uma nova região ou zona for criada, será usada a plataforma de CPU mais recente na época.

Quando uma zona tiver seu uso suspenso ou mudar a plataforma de CPU padrão de uma zona, o Google avisará com antecedência aos clientes afetados fornecendo um cronograma detalhado e instruções específicas para fazer a transição para a plataforma mais nova.

Caso o Compute Engine faça a transição da sua VM para uma plataforma mais recente, as VMs nunca usarão uma plataforma mais antiga que a plataforma mínima de CPU especificada. Além disso, o custo da VM não será alterado.

Especificações

Limitações

Os tipos de máquina predefinidos e2-micro, e2-small, e2-medium, f1-micro e g1-small são VMs de uso geral com núcleo compartilhado. Você não tem as opções de seleção de plataforma de CPU quando seleciona um desses tipos de máquina.

Disponibilidade

A disponibilidade de plataformas de CPU específicas varia de uma zona para outra e é baseada no hardware disponível em cada zona. A lista a seguir mostra as plataformas mínimas de CPU compatíveis e a sintaxe válida para cada uma delas:

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

Somente determinadas zonas contêm várias plataformas de CPU e estão disponíveis para seleção de plataforma mínima de CPU. Se você usar nós de locatário individual, cada nó usará a plataforma de CPU correspondente ao tipo de nó definido no modelo de nó. Como resultado, não é possível especificar uma plataforma mínima de CPU para VMs que usam nós de locatário individual.

É possível visualizar uma lista de plataformas compatíveis com uma zona específica usando o comando gcloud compute zones describe ou fazendo uma solicitação à API.

gcloud

Para ver as plataformas de CPU na sua zona:

gcloud compute zones describe ZONE

Por exemplo, a saída desse comando lista as plataformas de CPU para a zona us-west1-a:

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

API

Na API, faça uma solicitação GET à zona em questão:

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

A resposta contém uma lista de plataformas de CPU compatíveis com essa zona. Por exemplo:

{
  "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"
  ]
 }

Como selecionar uma plataforma de CPU mínima para uma nova VM

Você pode especificar uma plataforma mínima de CPU durante a criação da instância.

Console

  1. No Console do Google Cloud, acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Se solicitado, selecione o projeto e clique em Continuar.

  3. Clique no botão Criar instância.

  4. Na seção Configuração da máquina, clique em Plataforma de CPU e GPU.

  5. No menu suspenso Plataforma da CPU, selecione uma opção.

  6. Continue com o resto do processo de criação da instância.

gcloud

Para criar uma nova VM com uma plataforma de CPU mínima, forneça a sinalização --min-cpu-platform. Ao especificar a plataforma de CPU, forneça a plataforma usando o nome amigável, como Intel Broadwell ou Intel Haswell. Use a seção de zonas disponíveis para determinar quais plataformas estão disponíveis para cada zona.

Por exemplo, para especificar uma plataforma de CPU mínima de Intel Haswell:

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

Se você quiser apagar a especificação mínima da plataforma de CPU, defina --min-cpu-platform como AUTOMATIC.

API

Na API de Compute Engine, inclua a propriedade minCpuPlatform como parte do corpo da solicitação. O valor de minCpuPlatform precisa ser o nome amigável da plataforma, como Intel Haswell, Intel Broadwell e Intel Sandy Bridge.

Por exemplo, um corpo da solicitação ficaria assim:

"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"
   }
 }]

Se você quiser apagar a especificação mínima da plataforma de CPU, defina minCpuPlatform como AUTOMATIC.

Como definir uma plataforma de CPU mínima para uma VM interrompida

Para definir uma plataforma mínima de CPU para uma instância existente, primeiro pare a instância.

Depois de parar a instância, siga as instruções a seguir para definir uma plataforma mínima de CPU.

Console

  1. No Console do Google Cloud, acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Se solicitado, selecione o projeto e clique em Continuar.

  3. Selecione a instância interrompida a ser alterada.

  4. Clique em Editar para editar a instância.

  5. Na seção Configuração da máquina, clique em Plataforma de CPU e GPU.

  6. No menu suspenso Plataforma da CPU, selecione uma opção.

  7. Salve as alterações.

  8. Reinicie a instância.

gcloud

  1. Use o subcomando update, seguido da sinalização --min-cpu-platform. Especifique o nome intuitivo das plataformas, como Intel Haswell, Intel Broadwell ou Intel Sandy Bridge. Exemplo:

    gcloud compute instances update INSTANCE_NAME \
       --min-cpu-platform="Intel Haswell"
  2. Reinicie a instância.

API

  1. Para definir a plataforma de CPU mínima na API, faça uma solicitação de POST para o método setMinCpuPlatform e defina a propriedade minCpuPlatform no corpo da solicitação. O valor da propriedade é o nome amigável da plataforma de CPU, como Intel Haswell, Intel Broadwell ou Intel Sandy Bridge. Exemplo:

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

    A saída é esta:

    {
      "minCpuPlatform": "Intel Haswell"
    }
    1. Reinicie a instância.

Como especificar uma plataforma de CPU mínima em modelos de instância

Se você usar grupos de instâncias gerenciadas, poderá especificar uma plataforma mínima de CPU para instâncias de VM dentro de um grupo de instâncias gerenciadas.

Para especificar uma plataforma mínima de CPU, crie um modelo de instância que inclua a propriedade minCpuPlatform.

Console

  1. No Console do Google Cloud, acesse a página Modelos de instância.

    Acesse "Modelos de instância"

  2. Se solicitado, selecione o projeto e clique em Continuar.

  3. Clique em Criar modelo de instância.

  4. Na seção Configuração da máquina, clique em Plataforma de CPU e GPU.

  5. No menu suspenso Plataforma da CPU, selecione uma opção.

  6. Continue com o processo de criação do modelo de instância.

gcloud

Forneça a sinalização --min-cpu-platform ao criar um modelo de instância. Exemplo:

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

API

Na API, adicione minCpuPlatform como parte da solicitação para criar um novo modelo de instância na API Compute Engine.

Por exemplo, o modelo de instância a seguir contém os campos mínimos necessários para criar um novo modelo com a adição da propriedade 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"
      }
    }
  ]
  }
}

A seguir