Ativar a PMU em instâncias do Compute Engine

Este documento explica como ativar a unidade de monitoramento de desempenho (PMU) em instâncias A4X, C4A, C4 ou M4 do Compute Engine. Depois de ativar a PMU, você pode usá-la para otimizar cargas de trabalho sensíveis ao desempenho, como computação de alto desempenho (HPC) ou machine learning (ML), identificando e resolvendo gargalos de aplicativos.

Para saber mais sobre os requisitos e limitações que você aplica ao ativar a PMU em uma instância de computação, consulte a visão geral da PMU.

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:

    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 .

Funções exigidas

Para receber as permissões necessárias para ativar a PMU em uma instância de computação nova ou atual, peça ao administrador para conceder a você o papel do IAM de Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para ativar a PMU em uma instância de computação nova ou atual. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

Estas permissões são necessárias para ativar a PMU em uma instância de computação nova ou atual:

  • Para criar instâncias de computação:
    • compute.instances.create no projeto
    • Usar uma imagem personalizada para criar a VM: compute.images.useReadOnly na imagem
    • Utilizar um snapshot para criar a VM: compute.snapshots.useReadOnly no snapshot
    • Usar um modelo de instância para criar a VM: compute.instanceTemplates.useReadOnly no modelo de instância
    • Atribuir uma rede legada à VM: compute.networks.use no projeto
    • Especificar um endereço IP estático para a VM: compute.addresses.use no projeto
    • Atribuir um endereço IP externo à VM ao usar uma rede legada: compute.networks.useExternalIp no projeto
    • Especificar uma sub-rede para a VM: compute.subnetworks.use no projeto ou na sub-rede escolhida
    • Atribuir um endereço IP externo à VM ao usar uma rede VPC: compute.subnetworks.useExternalIp no projeto ou na sub-rede escolhida
    • Definir os metadados da instância da VM: compute.instances.setMetadata no projeto
    • Definir tags para a VM: compute.instances.setTags na VM
    • Definir rótulos para a VM: compute.instances.setLabels na VM
    • Definir uma conta de serviço para a VM usar: compute.instances.setServiceAccount na VM
    • Criar um disco para a VM: compute.disks.create no projeto
    • Anexar um disco atual no modo somente leitura ou de leitura e gravação: compute.disks.use no disco
    • Anexar um disco atual no modo somente leitura: compute.disks.useReadOnly no disco
  • Criar um modelo de instância: compute.instanceTemplates.create no projeto
  • Para atualizar uma instância de computação: compute.instances.update na instância de computação

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Ativar a PMU em instâncias de computação

Para ativar a PMU em uma ou mais instâncias de computação, use um dos seguintes métodos:

Depois de ativar a PMU em uma ou mais instâncias de computação, você pode instalar e usar um software de monitoramento de desempenho nelas.

Ativar a PMU em uma instância de computação atual

Antes de ativar a PMU em uma instância de computação, verifique se ela usa uma série de máquinas e uma plataforma de CPU compatíveis. Para verificar a série de máquinas e a plataforma de CPU usadas pela instância de computação, confira os detalhes dela.

Se a instância de computação não usar uma série de máquinas compatível, substitua o tipo de máquina dela. Para isso, migre sua carga de trabalho para uma nova instância de computação que use um tipo de máquina compatível ou mude o tipo de máquina para configurações compatíveis:

  • Se você precisar mover sua instância de computação atual para uma nova para mudar o tipo de máquina, crie uma nova instância de computação com a PMU ativada em uma zona que ofereça a plataforma de CPU que você quer usar com eventos de PMU.

  • Se você puder mudar o tipo de máquina, siga estas etapas:

    1. Verifique se uma plataforma de CPU compatível está disponível na zona em que sua instância de computação existe. Para isso, consulte as regiões e zonas disponíveis.

    2. Se uma plataforma de CPU compatível não estiver disponível na zona da instância de computação, migre a instância para uma zona que tenha uma plataforma de CPU compatível.

    3. Mude o tipo de máquina. Para ativar o tipo de PMU arquitetônica ou padrão, especifique qualquer tipo de máquina A4X, C4A, C4 ou M4. No entanto, para ativar o tipo de PMU aprimorada, especifique um dos seguintes tipos de máquina C4 ou M4:

      • Qualquer tipo de máquina C4 com 144 ou 288 vCPUs

      • Um dos seguintes tipos de máquina M4:

        • m4-megamem-112

        • m4-megamem-224

        • m4-ultramem-56

        • m4-ultramem-112

        • m4-ultramem-224

Não é necessário interromper a instância de computação para ativar a PMU. No entanto, para que a mudança entre em vigor, reinicie a instância de computação conforme descrito nesta seção.

Para ativar a PMU em uma instância de computação, selecione uma das seguintes opções:

gcloud

  1. Crie um arquivo YAML vazio.

  2. Para exportar as propriedades de uma instância de computação para o arquivo YAML que você acabou de criar, use o comando gcloud compute instances export:

    gcloud compute instances export INSTANCE_NAME \
        --destination=YAML_FILE \
        --zone=ZONE
    

    Substitua:

    • INSTANCE_NAME: o nome da instância de computação.

    • YAML_FILE: o caminho para o arquivo YAML que você criou na etapa anterior.

    • ZONE: a zona em que a instância de computação está.

  3. No arquivo de configuração YAML, no campo advancedMachineFeatures, adicione o campo performanceMonitoringUnit. Se o campo advancedMachineFeatures não existir, adicione-o também:

    advancedMachineFeatures:
      performanceMonitoringUnit: PMU_TYPE
    

    Substitua PMU_TYPE por um dos seguintes valores:

    • Tipo de PMU arquitetônica: ARCHITECTURAL

    • Tipo de PMU padrão: STANDARD

    • Tipo de PMU aprimorada: ENHANCED

  4. Para atualizar e reiniciar a instância de computação, use o comando gcloud compute instances update-from-file com a flag --most-disruptive-allowed-action definida como RESTART:

    gcloud compute instances update-from-file INSTANCE_NAME \
        --most-disruptive-allowed-action=RESTART \
        --source=YAML_FILE \
        --zone=ZONE
    

    Substitua YAML_FILE pelo caminho para o arquivo YAML com os dados de configuração que você modificou na etapa anterior.

REST

  1. Para conferir as propriedades de uma instância de computação atual, faça uma solicitação GET para o método instances.get:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que você criou a instância de computação.

    • ZONE: a zona em que a instância de computação está.

    • INSTANCE_NAME: o nome da instância de computação.

  2. Para atualizar e reiniciar a instância de computação, faça uma solicitação PUT ao método instances.update da seguinte maneira:

    • No URL da solicitação, inclua o parâmetro de consulta mostDisruptiveAllowedAction definido como RESTART.

    • Para o corpo da solicitação, use a saída da solicitação GET da etapa anterior. No entanto, no campo advancedMachineFeatures, é necessário adicionar o campo performanceMonitoringUnit para ativar a PMU. Se o campo advancedMachineFeatures não existir na saída da solicitação, adicione-o também:

    A solicitação PUT é semelhante a esta:

    PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=RESTART
    
    {
      "advancedMachineFeatures": {
        "performanceMonitoringUnit": "PMU_TYPE"
      },
      ...
    }
    

    Substitua PMU_TYPE por um dos seguintes valores:

    • Tipo de PMU arquitetônica: ARCHITECTURAL

    • Tipo de PMU padrão: STANDARD

    • Tipo de PMU aprimorada: ENHANCED

Para mais informações sobre como atualizar as propriedades de uma instância de computação, consulte Atualizar as propriedades da instância.

Ativar a PMU ao criar uma instância de computação

Só é possível criar uma instância de computação com a PMU ativada em uma zona que contenha uma plataforma de CPU compatível. Para conferir uma lista de CPUs disponíveis por zona, consulte Regiões e zonas disponíveis.

Para criar uma instância de computação com a PMU ativada, selecione uma das seguintes opções:

gcloud

Para criar uma instância de computação com a PMU ativada, use o comando gcloud compute instances create com a flag --performance-monitoring-unit:

gcloud compute instances create INSTANCE_NAME \
    --machine-type=MACHINE_TYPE \
    --performance-monitoring-unit=PMU_TYPE \
    --zone=ZONE

Substitua:

  • INSTANCE_NAME: o nome da instância de computação.

  • MACHINE_TYPE: o tipo de máquina da instância de computação. Se você quiser ativar o tipo de PMU aprimorado em uma instância de computação, só será possível fazer isso se a instância usar um tipo de máquina compatível.

  • PMU_TYPE: o tipo de PMU a ser ativado na instância de computação. Especifique um dos seguintes valores:

    • Tipo de PMU arquitetônica: architectural

    • Tipo de PMU padrão: standard

    • Tipo de PMU aprimorada: enhanced

  • ZONE: a zona em que a instância de computação será criada.

REST

Para criar uma instância de computação com a PMU ativada, faça uma solicitação POST ao método instances.insert. No corpo da solicitação, inclua o campo performanceMonitoringUnit:

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

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "advancedMachineFeatures": {
    "performanceMonitoringUnit": "PMU_TYPE"
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a instância de computação será criada.

  • ZONE: a zona em que a instância de computação será criada.

  • INSTANCE_NAME: o nome da instância de computação.

  • MACHINE_TYPE: o tipo de máquina da instância de computação. Se você quiser ativar o tipo de PMU aprimorado em uma instância de computação, só será possível fazer isso se a instância usar um tipo de máquina compatível.

  • IMAGE_PROJECT: o projeto que contém a imagem, como debian-cloud. Para mais detalhes sobre os projetos de imagem disponíveis, consulte Imagens públicas.

  • IMAGE: especifique uma destas opções:

    • Uma versão específica da imagem do SO, como debian-12-bookworm-v20240617.

    • Uma família de imagens, que precisa ter o formato family/IMAGE_FAMILY. Ela especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificar family/debian-12, a versão mais recente na família de imagens do Debian 12 será usada. Para saber como usar famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

  • PMU_TYPE: o tipo de PMU a ser ativado na instância de computação. Especifique um dos seguintes valores:

    • Tipo de PMU arquitetônica: ARCHITECTURAL

    • Tipo de PMU padrão: STANDARD

    • Tipo de PMU aprimorada: ENHANCED

Para mais informações sobre como criar uma instância de computação, consulte Criar e iniciar uma instância do Compute Engine.

Ativar a PMU ao criar instâncias de computação em massa

Só é possível criar instâncias de computação em massa com a PMU ativada em uma zona que contenha uma plataforma de CPU compatível. Para conferir uma lista de CPUs disponíveis por zona, consulte Regiões e zonas disponíveis.

Para criar instâncias de computação em massa com a PMU ativada, selecione uma das seguintes opções:

gcloud

Para criar instâncias de computação em massa com a PMU ativada, use o comando gcloud compute instances bulk create com a flag --performance-monitoring-unit.

Por exemplo, para criar instâncias de computação em massa em uma única zona e especificar um padrão de nome, execute o seguinte comando:

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern="NAME_PATTERN" \
    --performance-monitoring-unit=PMU_TYPE \
    --zone=ZONE

Substitua:

  • COUNT: o número de instâncias de computação a serem criadas.

  • MACHINE_TYPE: o tipo de máquina das instâncias de computação. Se você quiser ativar o tipo de PMU aprimorado em uma instância de computação, só será possível fazer isso se a instância usar um tipo de máquina compatível.

  • NAME_PATTERN: o padrão de nome das instâncias de computação. Para substituir uma sequência de números no nome de uma instância de computação, use uma sequência de caracteres hash (#). Por exemplo, usar instance-# para o padrão de nome gera instâncias de computação com nomes que começam com instance-1, instance-2 e continuam até o número de instâncias de computação especificado por COUNT.

  • PMU_TYPE: o tipo de PMU a ser ativado nas instâncias de computação. Especifique um dos seguintes valores:

    • Tipo de PMU arquitetônica: architectural

    • Tipo de PMU padrão: standard

    • Tipo de PMU aprimorada: enhanced

  • ZONE: a zona em que as instâncias de computação serão criadas em massa.

REST

Para criar instâncias de computação em massa com a PMU ativada, faça uma solicitação POST para o método instances.bulkInsert. No corpo da solicitação, inclua o campo performanceMonitoringUnit.

Por exemplo, para criar instâncias de computação em massa em uma única zona e especificar um padrão de nome, faça uma solicitação POST da seguinte maneira:

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

{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "advancedMachineFeatures": {
      "performanceMonitoringUnit": "PMU_TYPE"
    }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que as instâncias de computação serão criadas em massa.

  • ZONE: a zona em que as instâncias de computação serão criadas em massa.

  • COUNT: o número de instâncias de computação a serem criadas.

  • NAME_PATTERN: o padrão de nome das instâncias de computação. Para substituir uma sequência de números no nome de uma instância de computação, use uma sequência de caracteres hash (#). Por exemplo, usar instance-# para o padrão de nome gera instâncias de computação com nomes que começam com instance-1, instance-2 e continuam até o número de instâncias de computação especificado por COUNT.

  • MACHINE_TYPE: o tipo de máquina das instâncias de computação. Se você quiser ativar o tipo de PMU aprimorado em uma instância de computação, só será possível fazer isso se a instância usar um tipo de máquina compatível.

  • IMAGE_PROJECT: o projeto que contém a imagem, como debian-cloud. Para mais detalhes sobre os projetos de imagem disponíveis, consulte Imagens públicas.

  • IMAGE: especifique uma destas opções:

    • Uma versão específica da imagem do SO, como debian-12-bookworm-v20240617.

    • Uma família de imagens, que precisa ter o formato family/IMAGE_FAMILY. Ela especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificar family/debian-12, a versão mais recente na família de imagens do Debian 12 será usada. Para saber como usar famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

  • PMU_TYPE: o tipo de PMU a ser ativado nas instâncias de computação. Especifique um dos seguintes valores:

    • Tipo de PMU arquitetônica: ARCHITECTURAL

    • Tipo de PMU padrão: STANDARD

    • Tipo de PMU aprimorada: ENHANCED

Para mais informações sobre como criar instâncias de computação em massa, consulte Criar VMs em massa.

Ativar a PMU ao criar um modelo de instância

Se você quiser criar um modelo de instância regional que especifique a ativação da PMU, verifique se pelo menos uma zona na região selecionada contém uma plataforma de CPU compatível. Para conferir uma lista de CPUs disponíveis por zona, consulte Regiões e zonas disponíveis.

Depois de criar um modelo de instância que especifica a ativação da PMU, é possível usar o modelo para fazer o seguinte:

Para criar um modelo de instância que especifique a ativação da PMU, selecione uma das seguintes opções:

gcloud

Para criar um modelo de instância que especifique a ativação da PMU, use o comando gcloud compute instance-templates create com a flag --performance-monitoring-unit.

Por exemplo, use o comando a seguir para criar um modelo de instância regional. Se você quiser criar um modelo de instância global, use o mesmo comando sem a flag --instance-template-region.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --performance-monitoring-unit=PMU_TYPE

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.

  • REGION: a região em que o modelo de instância será criado.

  • MACHINE_TYPE: o tipo de máquina das instâncias de computação. Se você quiser ativar o tipo de PMU aprimorado em uma instância de computação, só será possível fazer isso se a instância usar um tipo de máquina compatível.

  • PMU_TYPE: o tipo de PMU a ser incluído no modelo de instância. Especifique um dos seguintes valores:

    • Tipo de PMU arquitetônica: architectural

    • Tipo de PMU padrão: standard

    • Tipo de PMU aprimorada: enhanced

REST

Para criar um modelo de instância que especifique a ativação da PMU, faça uma solicitação POST para um dos seguintes métodos:

No corpo da solicitação, inclua o campo performanceMonitoringUnit.

Por exemplo, para criar um modelo de instância regional que especifique a ativação da PMU, faça uma solicitação POST da seguinte maneira:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "advancedMachineFeatures": {
      "performanceMonitoringUnit": "PMU_TYPE"
    }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que o modelo de instância será criado.

  • REGION: a região em que o modelo de instância será criado.

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.

  • IMAGE_PROJECT: o projeto que contém a imagem, como debian-cloud. Para mais detalhes sobre os projetos de imagem disponíveis, consulte Imagens públicas.

  • IMAGE: especifique uma destas opções:

    • Uma versão específica da imagem do SO, como debian-12-bookworm-v20240617.

    • Uma família de imagens, que precisa ter o formato family/IMAGE_FAMILY. Ela especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificar family/debian-12, a versão mais recente na família de imagens do Debian 12 será usada. Para saber como usar famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

  • MACHINE_TYPE: o tipo de máquina das instâncias de computação. Se você quiser ativar o tipo de PMU aprimorado em uma instância de computação, só será possível fazer isso se a instância usar um tipo de máquina compatível.

  • PMU_TYPE: o tipo de PMU a ser incluído no modelo de instância. Especifique um dos seguintes valores:

    • Tipo de PMU arquitetônica: ARCHITECTURAL

    • Tipo de PMU padrão: STANDARD

    • Tipo de PMU aprimorada: ENHANCED

Para mais informações sobre como criar um modelo de instância, consulte Criar modelos de instância.

A seguir