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

Esta página explica como criar ou atualizar uma instância de máquina virtual (VM) para usar uma plataforma de CPU mínima em vez da plataforma predefinida.

Os centros de dados da Google oferecem diferentes gerações de processadores de CPU. Cada plataforma de CPU suporta funcionalidades incrementais, como as extensões de vetores avançadas, por exemplo, AVX2 e AVX-512. Além disso, algumas funcionalidades fundamentais relacionadas com o sistema, como a velocidade do relógio e o tempo de procura de acesso à memória, podem variar entre as plataformas de CPU.

Cada série de máquinas 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 existirem várias plataformas de CPU disponíveis para uma série de máquinas, pode selecionar uma plataforma de CPU mínima quando criar uma VM com um tipo de máquina dessa série de máquinas. A disponibilidade da família de máquinas, da série, da região e das zonas determina o que pode escolher para a plataforma de CPU mínima.

A especificação de uma plataforma de CPU mínima é útil se a sua carga de trabalho exigir os ganhos de desempenho oferecidos pela geração de um processador específico. No entanto, a especificação de uma plataforma de CPU mínima pode limitar as zonas onde pode criar as suas VMs.

Antes de começar

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Trusted Cloud by S3NS serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:

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

    Console

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

    gcloud

    1. Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init
    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

    Para mais informações, consulte o artigo Autenticar para usar REST na Trusted Cloud documentação de autenticação.

Funções e autorizações necessárias

Para receber as autorizações de que precisa para alterar a plataforma de CPU mínima, peça ao seu administrador que lhe conceda as seguintes funções da IAM no projeto:

  • Administrador de instâncias do Compute (v1) (roles/compute.instanceAdmin.v1)
  • Para estabelecer ligação a uma VM que pode ser executada como uma conta de serviço: Utilizador da conta de serviço (v1) (função roles/iam.serviceAccountUser)

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Quando selecionar uma plataforma de CPU mínima

Muito provavelmente, não precisa de selecionar uma plataforma de CPU mínima. Cada zona do Compute Engine tem uma plataforma de CPU predefinida para cada série de máquinas. A Google altera ocasionalmente a CPU predefinida de uma zona quando são adicionados novos servidores. Se não especificar uma plataforma de CPU mínima para uma VM, a VM recebe a plataforma de CPU predefinida associada ao respetivo tipo de máquina e zona.

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

  • Quando a plataforma de CPU mínima oferece ganhos de desempenho significativos para a sua carga de trabalho ou se fornece capacidades, como AVX2 ou AVX-512, que o seu código usa.
  • Quando criar VMs que consomem reservas, tem de especificar a mesma plataforma de CPU que a reserva.

Selecionar uma plataforma de CPU mínima para a sua VM introduz restrições que afetam a sua capacidade de iniciar VMs em zonas onde algumas plataformas de CPU estão em fornecimento limitado.

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

O Compute Engine usa sempre a plataforma de CPU mínima, quando disponível. Se a Google alterar uma plataforma de CPU numa zona, a sua VM pode continuar a ser executada numa plataforma de CPU mais recente disponível nessa zona se parar e reiniciar a VM.

Depois de selecionar uma plataforma de CPU mínima para uma VM, a VM usa esta plataforma de CPU, a menos que pare a VM e altere a plataforma de CPU. Durante uma migração em direto, a VM mantém a plataforma de CPU selecionada.

Limitações

  • Cada região e zona suporta várias plataformas de CPU, mas uma região ou uma zona pode não oferecer todas as plataformas de CPU.
  • Não pode especificar uma plataforma de CPU mínima para VMs que usam nós de inquilino único.
  • Não pode selecionar uma plataforma de CPU mínima para VMs E2 predefinidas ou personalizadas.
  • Não pode selecionar uma plataforma de CPU mínima para as seguintes VMs de uso geral com núcleo partilhado:
    • e2-micro
    • e2-small
    • e2-medium
    • f1-micro
    • g1-small

Disponibilidade de plataformas de CPU

A disponibilidade de plataformas de CPU varia entre zonas e baseia-se no hardware e na série de máquinas disponíveis em cada zona. A lista seguinte mostra as plataformas de CPU mínimas suportadas e a sintaxe válida para cada plataforma:

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

Veja as plataformas de CPU disponíveis por zona

Apenas determinadas regiões e zonas contêm várias plataformas de CPU para a mesma série de máquinas e estão disponíveis para a seleção da plataforma de CPU mínima. Pode ver uma lista de plataformas suportadas para uma zona específica através da CLI gcloud ou da API REST.

Se estiver a usar nós de inquilino único, cada nó usa a plataforma de CPU correspondente ao tipo de nó que definiu no modelo de nó.

gcloud

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

    gcloud compute zones describe ZONE
    

    Substitua ZONE pelo nome da zona para verificar as plataformas de CPU disponíveis, por exemplo, europe-west10-a.

    O resultado seguinte deste 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 um GET pedido à zona que está a considerar:

    GET https://compute.s3nsapis.fr/compute/v1/projects/myproject/zones/ZONE
    

    Substitua ZONE pelo nome da zona para verificar as plataformas de CPU disponíveis.

    O resultado seguinte deste comando apresenta as plataformas de CPU suportadas 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.s3nsapis.fr/compute/v1/projects/myproject/regions/europe-west10-a",
      "selfLink": "https://www.s3nsapis.fr/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
     }

Alterações predefinidas a uma plataforma de CPU

Ocasionalmente, a Google altera uma plataforma da CPU ou atualiza a plataforma da CPU predefinida. À medida que uma zona aumenta a capacidade, a Google muda proativamente para uma plataforma de CPU mais recente à medida que a plataforma fica disponível. Atualiza a plataforma de CPU predefinida para a mais recente disponível nessa zona.

Quando uma plataforma de CPU predefinida para uma zona é alterada, a Google notifica os clientes afetados com uma cronologia detalhada 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 que especifica. Se o Compute Engine fizer a transição da sua VM para uma plataforma mais recente, o custo da VM não se altera.

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

Quando cria uma VM, escolhe uma série de máquinas e um tipo de máquina. A série de máquinas pode ser oferecida em mais do que uma plataforma de CPU. Neste caso, pode especificar a plataforma da CPU mínima que quer que a VM use.

Consola

  1. Na Trusted Cloud consola, aceda à página Criar uma instância.

    Aceda a Criar uma instância

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

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

  4. Continue com o resto do processo de criação da 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 flag --min-cpu-platform:

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

    Substitua o seguinte:

    • INSTANCE: o nome da instância que quer criar
    • ZONE: o nome da zona onde quer criar a sua instância, por exemplo, europe-west1-b
    • PLATFORM: o nome amigável da plataforma de CPU mínima que quer que a instância use, por exemplo, Intel Sandy Bridge

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

      Para verificar que plataformas de CPU estão disponíveis numa zona, consulte o artigo Veja as plataformas de CPU disponíveis por zona.

REST

  • Use o método instances.insert e inclua a propriedade minCpuPlatform como parte do corpo do pedido.

    Por exemplo, um corpo do pedido pode ter o seguinte aspeto:

    "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 o seguinte:

    • INSTANCE: o nome da nova VM
    • ZONE: o nome da zona onde quer criar a VM, por exemplo, europe-west1-b
    • MACHINE_TYPE: o tipo de máquina da nova VM
    • PLATFORM: o nome amigável da plataforma de CPU mínima que quer que a VM use, por exemplo, Intel Ivy Bridge

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

      Para verificar que plataformas de CPU estão disponíveis numa zona, consulte o artigo Veja 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 usar para criar a VM

Defina uma plataforma de CPU mínima para uma VM existente

Pode definir uma plataforma de CPU mínima para uma VM existente. Tem de parar a VM antes de definir a plataforma de CPU mínima.

Consola

  1. Aceda à página Instâncias de VM.

    Aceder às instâncias de VM

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

  3. Selecione a VM que quer alterar.

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

  5. Clique em Edit.

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

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

  8. Guarde as alterações.

  9. Selecione a VM que alterou.

  10. Clique em Iniciar/Retomar.

gcloud

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

    gcloud compute instances stop INSTANCE
    

    Substitua INSTANCE pelo nome da VM para a qual 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 flag --min-cpu-platform:

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

    Substitua PLATFORM pelo nome simples da plataforma de CPU mínima que quer que a VM use, por exemplo, Intel Cascade Lake.

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

    gcloud compute instances start INSTANCE
    

REST

  1. Para parar uma VM, crie um pedido POST com o método instances.stop:

    POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/stop
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do projeto
    • ZONE: a zona onde a sua VM está localizada
    • INSTANCE: o nome da VM para a qual quer especificar uma plataforma de CPU mínima
  2. Para definir a plataforma de CPU mínima, crie um pedido POST para o método setMinCpuPlatform e defina a propriedade minCpuPlatform no corpo do pedido:

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

    Substitua PLATFORM pelo nome simples da plataforma de CPU mínima que quer que a VM use, por exemplo, Intel Skylake.

  3. Para reiniciar a VM, crie um pedido POST através do método instances.start:

    POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/start
    

Remova uma definição de plataforma da CPU mínima

Pode atualizar uma VM para usar a plataforma de CPU predefinida em vez da plataforma de CPU mínima. Se a VM estiver em execução, tem de a parar antes de fazer alterações.

Consola

  1. Aceda à página Instâncias de VM.

    Aceder às instâncias de VM

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

  3. Selecione a VM que quer alterar.

  4. Clique em Parar.

  5. Para editar a MV, clique em Editar.

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

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

  8. Selecione a VM que alterou.

  9. Clique em Iniciar/Retomar.

gcloud

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

    gcloud compute instances stop INSTANCE
    

    Substitua INSTANCE pelo nome da MV que quer alterar.

  2. Para repor a plataforma mínima da CPU, use o comando gcloud compute instances update e defina o sinalizador --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 parar uma VM, crie um pedido POST com o método instances.stop:

    POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/stop
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do projeto
    • ZONE: a zona onde a sua VM está localizada
    • INSTANCE: o nome da VM que quer alterar
  2. Para repor a plataforma da CPU mínima, crie um pedido POST para o método setMinCpuPlatform. No corpo do pedido, defina o valor da propriedade minCpuPlatform como AUTOMATIC.

    POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/setMinCpuPlatform
    {
      "minCpuPlatform": "AUTOMATIC"
    }
    
  3. Para reiniciar a VM atualizada, crie um pedido POST com o método instances.start:

    POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/start
    

Especifique uma plataforma de CPU mínima em modelos de instâncias

Se usar grupos de instâncias geridos, pode especificar uma plataforma de CPU mínima para as VMs num grupo de instâncias gerido.

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

Consola

  1. Aceda à página Modelos de instâncias.

    Aceda a Modelos de instâncias

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

  3. Clique em Criar modelo de instância.

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

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

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

gcloud

  • Quando cria um modelo de instância com 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 o seguinte:

    • TEMPLATE_NAME: o nome do modelo de instância
    • PLATFORM: o nome amigável da plataforma de CPU mínima que quer que a instância use, por exemplo, Intel Skylake

REST

  • Adicione o minCpuPlatform como parte do seu pedido para criar um novo modelo de instância através do método instanceTemplates.insert.

    Por exemplo, o seguinte modelo de instância 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/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"
          }
        }
      ]
      }
    }

O que se segue?