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 Visão geral da PMU.

Antes de começar

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
  • Para 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 sua 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.s3nsapis.fr/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.s3nsapis.fr/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.s3nsapis.fr/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 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 seguinte comando 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.s3nsapis.fr/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