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

Nesta página, você vai 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 diferentes gerações de processadores de CPU. As plataformas de CPU aceitam recursos incrementais, como extensões vetoriais avançadas. Por exemplo, AVX2 e AVX-512. Além disso, 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.

Cada série de máquina está associada a uma ou mais plataformas de CPU. Por exemplo, as VMs N2 podem ser executadas nas CPUs Ice Lake ou Cascade Lake. Se houver várias plataformas de CPU disponíveis para uma série de máquinas, será possível selecionar uma plataforma de CPU mínima ao criar uma VM usando um tipo de máquina dessa série. A disponibilidade da família, da série, da região e das zonas das máquinas determina o que é possível escolher para a plataforma de CPU mínima.

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

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. Com isso, você confirma sua identidade para acesso a serviços e APIs do Google Cloud . Para executar código ou exemplos em um ambiente de desenvolvimento local, faça a autenticação no Compute Engine com um destes métodos:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instale a CLI do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar as amostras da API REST desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

      Instale a CLI do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

    Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .

Permissões e papéis necessários

Para receber as permissões necessárias e alterar a plataforma de CPU mínima, solicite ao administrador os seguintes papéis do IAM no projeto:

  • Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1)
  • Para se conectar a uma VM que possa ser executada como uma conta de serviço: Usuário da conta de serviço (v1) (papel roles/iam.serviceAccountUser)

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Quando selecionar uma plataforma de CPU mínima

Provavelmente, você não vai precisar selecionar uma plataforma de CPU mínima. Cada zona do Compute Engine tem uma plataforma de CPU padrão para cada série de máquinas. Às vezes, o Google muda a CPU padrão de uma zona quando novos servidores são adicionados. Se você não especificar uma plataforma de CPU mínima para uma VM, ela vai usar a plataforma de CPU padrão associada ao tipo de máquina e à zona.

O Google recomenda que você selecione uma plataforma de CPU mínima apenas nos seguintes casos:

  • Quando a plataforma de CPU mínima oferece ganhos de desempenho significativos para a carga de trabalho ou fornece recursos como AVX2 ou AVX-512 que são usados pelo código.
  • Ao criar VMs que consomem reservas, é necessário especificar a mesma plataforma de CPU da reserva.

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

O Compute Engine usa essa plataforma de CPU mínima sempre que ela está disponível. Se o Google alterar uma plataforma de CPU em uma zona, será possível continuar executando a VM em uma plataforma de CPU mais recente disponível nessa zona. Para isso, pare e reinicie a VM.

Depois que você selecionar uma plataforma de CPU mínima para uma VM, ela vai usar essa plataforma de CPU, a menos que você interrompa a VM e altere a plataforma de CPU. Durante uma migração em tempo real, sua VM mantém a plataforma de CPU selecionada.

Limitações

  • Cada região e zona aceita várias plataformas de CPU, mas uma delas pode não oferecer todas as plataformas de CPU.
  • Não é possível especificar uma plataforma de CPU mínima para VMs que usam nós de locatário individual.
  • 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 e 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 série de máquinas disponível em cada zona. A lista abaixo mostra as plataformas de CPU mínimas disponíveis e a sintaxe válida em cada uma delas:

  • 5ª geração: processadores Intel Xeon (Emerald Rapids): "Intel Emerald Rapids"
  • 4ª geração: processadores Intel Xeon (Sapphire Rapids): "Intel Sapphire Rapids"
  • 3ª geração: processadores Intel Xeon (Ice Lake): "Intel Ice Lake"
  • 2ª geração: processadores Intel Xeon (Cascade Lake): "Intel Cascade Lake"
  • 1ª 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 v2 (Ivy Bridge): "Intel Ivy Bridge"
  • Processadores Intel Xeon E5 (Sandy Bridge): "Intel Sandy Bridge"
  • 4ª geração: processadores AMD EPYC Genoa: "AMD Genoa"
  • 3ª geração: processadores AMD EPYC Milan: "AMD Milan"
  • 2ª geração: processadores AMD EPYC Rome: "AMD Rome"

Consultar as plataformas de CPU disponíveis por zona

Apenas algumas regiões e zonas contêm várias plataformas de CPU para a mesma série de máquinas e permitem a seleção de plataformas de CPU. É possível exibir uma lista de plataformas disponíveis com uma zona específica usando a gcloud CLI ou REST.

Quando você usa nós de locatário individual, cada nó usa a plataforma de CPU correspondente ao tipo de nó definido no modelo.

gcloud

  • Para conferir 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, europe-west10-a.

    Esta saída do comando lista as plataformas de CPU para a zona europe-west10-a:

    gcloud compute zones describe europe-west10-a
    availableCpuPlatforms:
    - Intel Broadwell
    - Intel Cascade Lake
    - Intel Ice Lake
    - AMD Milan
    - AMD Rome
    - Intel Skylake
    
    ...
    

REST

  • Faça uma solicitação GET para a 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.

    Esta saída do comando lista as plataformas de CPU disponíveis para uma zona:

    {
      "kind": "compute#zone",
      "id": "2210",
      "creationTimestamp": "1969-12-31T09:30:55.189-07:00",
      "name": "europe-west10-a",
      "description": "europe-west10-a",
      "status": "UP",
      "region": "https://www.googleapis.com/compute/v1/projects/myproject/regions/europe-west10-a",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/europe-west10-a",
      "availableCpuPlatforms": [
       "Intel Broadwell",
       "Intel Cascade Lake",
       "Intel Ice Lake",
       "AMD Milan",
       "AMD Rome",
       "Intel Skylake"
      ],
      "supportsPzs": true
     }

Mudanças padrão em uma plataforma de CPU

De vez em quando, o Google altera uma plataforma de CPU ou atualiza a plataforma de CPU padrão. À medida que a capacidade de uma zona cresce, o Google muda proativamente para uma plataforma de CPU mais recente quando ela fica disponível. Ele atualiza a plataforma de CPU padrão para a nova geração mais recente disponível na zona.

Quando a plataforma de CPU padrão de 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.

Selecionar uma plataforma de CPU mínima para uma nova VM

Ao criar uma VM, você escolhe uma série e um tipo de máquina. A série de máquinas pode ser oferecida em mais de uma plataforma de CPU. Nesse caso, é possível especificar a plataforma de CPU mínima a ser usada pela VM.

Console

  1. No console do Google Cloud , acesse a página Criar instância.

    Acessar Criar instância

  2. Na seção Configuração da máquina, expanda a seção Configurações avançadas.

  3. Na lista Plataforma de CPU, selecione uma plataforma para a CPU da VM.

  4. Continue com o restante do processo de criação da VM.

gcloud

  • Para criar uma VM que use uma plataforma de CPU mínima, utilize o comando gcloud compute instances create com a flag --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, como europe-west1-b.
    • PLATFORM: o nome fácil de lembrar da plataforma de CPU mínima que você quer usar para a instância, como Intel Sandy Bridge.

      Para limpar a especificação da plataforma de CPU mínima, substitua PLATFORM por AUTOMATIC.

      Para verificar quais plataformas de CPU estão disponíveis em uma zona, consulte Conferir as plataformas de CPU disponíveis por zona.

REST

  • Use o método instances.insert e inclua a propriedade minCpuPlatform como parte do corpo da solicitação.

    Por exemplo, esse corpo da solicitação pode ser parecido com o seguinte:

    "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 VM.
    • ZONE: o nome da zona em que você quer criar a VM, como europe-west1-b.
    • MACHINE_TYPE: o tipo de máquina da nova VM.
    • PLATFORM: o nome fácil de lembrar da plataforma de CPU mínima que você quer usar para a VM, como Intel Ivy Bridge.

      Para limpar a especificação da plataforma de CPU mínima, substitua PLATFORM por AUTOMATIC.

      Para verificar quais plataformas de CPU estão disponíveis em uma zona, consulte Conferir as plataformas de CPU disponíveis por zona.

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

Definir uma plataforma de CPU mínima para uma VM atual

É possível definir uma plataforma de CPU mínima para uma VM atual. É necessário interromper a VM antes de definir a plataforma de CPU mínima.

Console

  1. 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 VM que você quer alterar.

  4. Clique em Parar para parar a VM. Se não houver a opção Parar, clique em Mais ações > Parar.

  5. Clique em Editar.

  6. Na seção Configuração da máquina, clique em Configurações avançadas.

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

  8. Salve as alterações.

  9. Selecione a VM que você alterou.

  10. Clique em Iniciar/retomar.

gcloud

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

    gcloud compute instances stop INSTANCE
    

    Substitua INSTANCE pelo nome da VM que você quer usar para especificar uma plataforma de CPU mínima.

  2. Para especificar uma plataforma de CPU mínima, use o comando gcloud compute instances update com a flag --min-cpu-platform:

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

    Substitua PLATFORM pelo nome fácil de lembrar da plataforma de CPU mínima que você quer usar para a VM, como Intel Cascade Lake.

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

    gcloud compute instances start INSTANCE
    

REST

  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á.
    • INSTANCE: o nome da VM que você quer usar para especificar uma plataforma de CPU mínima.
  2. Para definir a plataforma de CPU mínima, crie 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 de lembrar da plataforma de CPU mínima que você quer usar para a VM, como Intel Skylake.

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

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

Remover uma configuração de plataforma de CPU mínima

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

Console

  1. 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 VM que você quer alterar.

  4. Clique em Interromper.

  5. Para editar a VM, clique em Editar.

  6. Na seção Configuração da máquina, clique em Configurações avançadas.

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

  8. Selecione a VM que você alterou.

  9. Clique em Iniciar/retomar.

gcloud

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

    gcloud compute instances stop INSTANCE
    

    Substitua INSTANCE pelo nome da VM que você quer alterar.

  2. Para redefinir a plataforma de CPU mínima, use o comando gcloud compute instances update e defina a flag --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
    

REST

  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á.
    • INSTANCE: o nome da VM 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 reiniciar a VM atualizada, crie uma solicitação POST usando o método instances.start:

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

Especificar uma plataforma de CPU mínima nos modelos de instância

Ao usar grupos gerenciados de instâncias, é possível especificar uma plataforma de CPU mínima para as VMs de um grupo.

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

Console

  1. Acesse a página Modelos de instância.

    Acessar 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 Configurações avançadas.

  5. No menu suspenso Plataforma de 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 flag --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 de lembrar da plataforma de CPU mínima que você quer usar para a instância, como Intel Skylake.

REST

  • Adicione minCpuPlatform como parte da solicitação para criar um modelo de instância usando o método instanceTemplates.insert.

    Por exemplo, o modelo de instância abaixo contém os campos mínimos necessários para criar um modelo com a adição da propriedade minCpuPlatform:

    {
    "name": "example-template",
    "properties": {
      "machineType": "zones/us-central1-a/machineTypes/n2d-standard-2",
      "minCpuPlatform": "AMD Milan",
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ],
      "disks":
      [
        {
          "type": "PERSISTENT",
          "boot": true,
          "mode": "READ_WRITE",
          "initializeParams":
          {
            "sourceImage": "projects/debian-cloud/global/images/family/debian-11"
          }
        }
      ]
      }
    }

A seguir