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


Nesta página, você aprenderá a criar ou atualizar uma instância de máquina virtual (VM) para usar uma plataforma de CPU mínima em vez da plataforma padrão. Os data centers do Google oferecem processadores de CPU Intel e AMD.

Especificar uma plataforma mínima de CPU será útil se a carga de trabalho exigir os ganhos de desempenho oferecidos pela geração de um processador específico. No entanto, especificar uma plataforma mínima de CPU pode limitar as zonas em que é possível criar as VMs.

Os data centers do Google oferecem processadores Intel e AMD para suas VMs.

Cada plataforma de CPU oferece suporte para recursos incrementais, como Extensões vetoriais avançadas. Por exemplo, AVX2 e AVX-512. Alguns recursos fundamentais relacionados a sistemas, como a velocidade do clock e o tempo de busca de acesso à memória, podem variar entre as plataformas de CPU.

Antes de começar

Quando selecionar uma plataforma de CPU mínima

Provavelmente, você não precisará selecionar uma plataforma de CPU mínima. Cada zona do Compute Engine tem uma plataforma de CPU padrão que o Google desativa ou atualiza de vez em quando. Se você criar uma VM sem uma especificação de CPU mínima, a VM receberá a plataforma de CPU padrão.

O Google recomenda escolher uma plataforma de CPU mínima apenas se ela oferecer ganhos de desempenho significativos para a carga de trabalho ou se fornecer recursos como AVX2 ou AVX-512 que seu código utiliza. A seleção de uma plataforma de CPU mínima para a VM impõe restrições que afetam a capacidade de iniciar VMs em zonas em que algumas plataformas de CPU têm oferta limitada.

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

Ao especificar uma plataforma de CPU mínima, considere os seguintes aspectos:

  • O Compute Engine usa essa plataforma sempre que ela está disponível.
  • Se o Google desativar ou atualizar uma plataforma de CPU em uma zona, a VM poderá continuar a ser executada em uma plataforma de CPU mais recente disponível nessa zona se você parar e reiniciar a VM. A desativação de plataformas de CPU ocorre com pouca frequência. O Google notifica você antes de desativar ou atualizar uma plataforma de CPU.

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.
  • Durante uma migração em tempo real, sua VM retém a plataforma de CPU selecionada.

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 ou cinco anos, o Google substitui plataformas antigas de CPU por plataformas mais recentes e atualiza a plataforma de CPU padrão para a plataforma seguinte mais recente disponível nessa zona.

A qualquer momento, quando uma nova região ou zona é criada, ela usa a plataforma de CPU mais recente.

Quando uma zona é suspensa ou uma plataforma de CPU padrão para uma zona é alterada, o Google notifica os clientes afetados com um cronograma detalhado e instruções específicas para fazer a transição para a plataforma mais recente.

As VMs nunca usam uma plataforma mais antiga do que a plataforma de CPU mínima especificada. Se o Compute Engine fizer a transição da sua VM para uma plataforma mais recente, o custo da VM não será alterado.

Limitações

  • Diferentes regiões e zonas são compatíveis com vários processadores de CPU.
  • Não é possível selecionar uma plataforma de CPU mínima para VMs E2 predefinidas ou personalizadas.
  • Não é possível selecionar uma plataforma de CPU mínima para as seguintes VMs de núcleo compartilhado de uso geral:
    • e2-micro
    • e2-small
    • e2-medium
    • f1-micro
    • g1-small

Disponibilidade de plataformas de CPU

A disponibilidade de plataformas de CPU varia de acordo com as zonas e é baseada no hardware e na família de máquinas disponível em cada zona. A lista a seguir mostra as plataformas mínimas de CPU compatíveis e a sintaxe válida em cada uma delas:

  • 3a geração: processadores Intel Xeon (Ice Lake): "Intel Ice Lake" em Visualização.
  • 2a geração: processadores Intel Xeon (Cascade Lake): "Intel Cascade Lake"
  • Primeira geração: processadores Intel Xeon (Skylake): "Intel Skylake"
  • Processadores Intel Xeon E5 v4 (Broadwell): "Intel Broadwell"
  • Processadores Intel Xeon E5 v3 (Haswell): "Intel Haswell"
  • Processadores Intel Xeon E5 (Sandy Bridge): "Intel Sandy Bridge"
  • Processadores AMD EPYC Rome: "AMD Rome"
  • Processadores AMD EPYC Milan: "AMD Milan"

Considere o seguinte:

  • Somente algumas zonas contêm várias plataformas de CPU e estão disponíveis para seleção de plataforma de CPU mínima. Veja uma lista de plataformas compatíveis para uma zona específica usando o comando gcloud compute zones describe ou fazendo uma solicitação à API.
  • Se você estiver usando 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 de CPU mínima para VMs que usam nós de locatário individual.

gcloud

  • Para ver as plataformas de CPU disponíveis na zona, use o comando gcloud compute zones describe:

    gcloud compute zones describe ZONE
    

    Substitua ZONE pelo nome da zona para verificar se há plataformas de CPU disponíveis. Por exemplo,us-west1-a.

    A saída a seguir deste 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 Compute Engine, faça uma solicitação GET à zona que você está considerando:

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

    Substitua ZONE pelo nome da zona para verificar se há plataformas de CPU disponíveis.

    A seguinte saída deste comando lista as plataformas de CPU compatíveis para uma 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"
      ]
     }

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 Criar uma instância.

    Acesse "Criar uma instância"

  2. Na seção Configuração da máquina, expanda a seção Plataforma de CPU e GPU e faça o seguinte:

    1. Na lista Plataforma de CPU, selecione uma plataforma para a CPU da VM.
  3. Continue com o restante do processo de criação do VM.

gcloud

  • Para criar uma nova VM que use uma plataforma de CPU mínima, use o comando gcloud compute instances create e forneça a sinalização --min-cpu-platform:

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

    Substitua:

    • INSTANCE: o nome da instância que você quer criar.
    • ZONE: o nome da zona em que você quer criar a instância. Por exemplo, europe-west1-b.
    • PLATFORM: o nome fácil da plataforma de CPU mínima que você quer para a instância. Por exemplo, Intel Sandy Bridge.

      Se você quiser limpar a especificação mínima da plataforma de CPU, substitua PLATFORM por AUTOMATIC.

      Use a seção de zonas disponíveis para saber quais plataformas estão disponíveis para cada zona.

API

  • Na API Compute Engine, inclua a propriedade minCpuPlatform como parte do corpo da solicitação.

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

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

    Substitua:

    • INSTANCE: o nome da nova instância.
    • ZONE: o nome da zona em que você quer criar a VM. Por exemplo, europe-west1-b.
    • MACHINE_TYPE: o tipo de máquina da nova VM.
    • PLATFORM: o nome fácil da plataforma de CPU mínima que você quer para a instância. Por exemplo, Intel Ivy Bridge.

      Se você quiser limpar a especificação mínima da plataforma de CPU, substitua PLATFORM por AUTOMATIC.

    • IMAGE_PROJECT: o projeto de imagem da família de imagens.

    • IMAGE_FAMILY: a família de imagens da imagem a ser usada para criar a VM.

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

É possível definir uma plataforma de CPU mínima para uma instância atual. Primeiro, interrompa a instância e defina a plataforma de CPU mínima.

Console

  1. Acesse a página Instâncias da VM.

    Acessar instâncias de VM

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

  3. Selecione a VM que você quer alterar.

  4. Clique em Interromper.

  5. Para editar a instância, clique em Editar.

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

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

  8. Salve as alterações.

  9. Selecione a VM que você alterou.

  10. Clique em Iniciar / continuar.

gcloud

  1. Para interromper uma VM, use o comando gcloud compute instances stop:

    gcloud compute instances stop INSTANCE
    

    Substitua INSTANCE pelo nome da instância para que você quer especificar uma plataforma de CPU mínima.

  2. Para especificar uma plataforma de CPU mínima, use o comando gcloud compute instances update e forneça a sinalização --min-cpu-platform:

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

    Substitua PLATFORM pelo nome fácil da plataforma de CPU mínima que você quer para a instância. Por exemplo, Intel Cascade Lake.

  3. Para iniciar a VM atualizada, use o comando gcloud compute instances start:

    gcloud compute instances start INSTANCE
    

API

  1. Para interromper uma VM, crie uma solicitação POST usando o método instances.stop:

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

    Substitua:

    • PROJECT_ID: o ID do projeto
    • ZONE: a zona em que a VM está localizada.
    • INSTANCE: o nome da instância para que você quer especificar uma plataforma de CPU mínima.
  2. Para definir a plataforma de CPU mínima na API, faça uma solicitação POST para o método setMinCpuPlatform e defina a propriedade minCpuPlatform no corpo da solicitação:

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

    Substitua PLATFORM pelo nome fácil da plataforma de CPU mínima que você quer para a instância. Por exemplo, Intel Skylake.

  3. Para reiniciar a VM, crie uma solicitação POST usando o método instances.start:

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

Como remover uma configuração de plataforma de CPU mínima

É possível atualizar uma instância para usar a plataforma de CPU padrão em vez da plataforma de CPU mínima. Se a instância estiver em execução, será preciso interrompê-la antes de fazer alterações.

Console

  1. Acesse a página Instâncias da VM.

    Acessar instâncias de VM

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

  3. Selecione a VM que você quer alterar.

  4. Clique em Interromper.

  5. Para editar a instância, clique em Editar.

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

  7. Altere a opção Plataforma de CPU para Automático.

  8. Selecione a VM que você alterou.

  9. Clique em Iniciar / continuar.

gcloud

  1. Para interromper uma VM, use o comando gcloud compute instances stop:

    gcloud compute instances stop INSTANCE
    

    Substitua INSTANCE pelo nome da instância que você quer alterar.

  2. Para redefinir a plataforma de CPU mínima, use o comando gcloud compute instances update e defina a sinalização --min-cpu-platform como AUTOMATIC:

    gcloud compute instances update INSTANCE \
        --min-cpu-platform="AUTOMATIC"
    
  3. Para iniciar a VM atualizada, use o comando gcloud compute instances start:

    gcloud compute instances start INSTANCE
    

API

  1. Para interromper uma VM, crie uma solicitação POST usando o método instances.stop:

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

    Substitua:

    • PROJECT_ID: o ID do projeto
    • ZONE: a zona em que a VM está localizada.
    • INSTANCE: o nome da instância que você quer alterar.
  2. Para redefinir a plataforma de CPU mínima, faça uma solicitação POST para o método setMinCpuPlatform. No corpo da solicitação, defina o valor da propriedade minCpuPlatform como AUTOMATIC.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/setMinCpuPlatform
    {
      "minCpuPlatform": AUTOMATIC
    }
    
  3. Para iniciar a VM atualizada, use o comando gcloud compute instances start:

    gcloud compute instances start INSTANCE
    

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

  • Ao criar um modelo de instância usando o comando gcloud compute instance-templates create, forneça a sinalização --min-cpu-platform:

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

    Substitua:

    • TEMPLATE_NAME: o nome do modelo de instância.
    • PLATFORM: o nome fácil da plataforma de CPU mínima que você quer para a instância. Por exemplo, Intel Skylake.

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

A seguir