Ative a PMU em VMs


Este documento explica como ativar a unidade de monitorização do desempenho (PMU) em instâncias de máquinas virtuais (VM) novas ou existentes. Para saber mais sobre a PMU, consulte a vista geral da PMU.

Depois de ativar a PMU numa VM C4A ou C4 e estabelecer ligação à mesma, pode executar e instalar software de monitorização do desempenho na VM para analisar e otimizar o desempenho do software em execução na VM. Esta abordagem é útil quando executa cargas de trabalho sensíveis ao desempenho, como cargas de trabalho de computação de alto desempenho (HPC) ou de aprendizagem automática (ML).

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 Google Cloud 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:

    gcloud

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

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    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. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

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

Funções necessárias

Para receber as autorizações de que precisa para ativar a PMU numa VM nova ou existente, peça ao seu administrador para lhe conceder a função de IAM Administrador de instâncias do Compute (v1) (roles/compute.instanceAdmin.v1) no seu projeto. 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.

Esta função predefinida contém as autorizações necessárias para ativar a PMU numa VM nova ou existente. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

As seguintes autorizações são necessárias para ativar a PMU numa VM nova ou existente:

  • Para criar VMs:
    • compute.instances.create no projeto
    • Para usar uma imagem personalizada para criar a VM: compute.images.useReadOnly na imagem
    • Para usar um instantâneo para criar a VM: compute.snapshots.useReadOnly no instantâneo
    • Para usar um modelo de instância para criar a VM: compute.instanceTemplates.useReadOnly no modelo de instância
    • Para atribuir uma rede antiga à VM: compute.networks.use no projeto
    • Para especificar um endereço IP estático para a VM: compute.addresses.use no projeto
    • Para atribuir um endereço IP externo à VM quando usar uma rede antiga: compute.networks.useExternalIp no projeto
    • Para especificar uma sub-rede para a VM: compute.subnetworks.use no projeto ou na sub-rede escolhida
    • Para atribuir um endereço IP externo à VM quando usar uma rede VPC: compute.subnetworks.useExternalIp no projeto ou na sub-rede escolhida
    • Para definir os metadados da instância de VM para a VM: compute.instances.setMetadata no projeto
    • Para definir etiquetas para a VM: compute.instances.setTags na VM
    • Para definir etiquetas para a VM: compute.instances.setLabels na VM
    • Para definir uma conta de serviço para a VM usar: compute.instances.setServiceAccount na VM
    • Para criar um novo disco para a VM: compute.disks.create no projeto
    • Para anexar um disco existente no modo de leitura ou leitura/escrita: compute.disks.use no disco
    • Para anexar um disco existente no modo de leitura: compute.disks.useReadOnly no disco
  • Para criar um modelo de instância: compute.instanceTemplates.create no projeto
  • Para atualizar uma VM: compute.instances.update na VM

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Ative a PMU em VMs

Para ativar a PMU numa ou mais VMs C4A ou C4, use um dos seguintes métodos:

Depois de ativar a PMU numa ou mais VMs, pode instalar e usar software de monitorização do desempenho nas VMs.

Ative a PMU numa VM existente

Antes de ativar a PMU numa VM existente, certifique-se de que a VM usa um tipo de máquina e uma plataforma de CPU suportados fazendo o seguinte:

  1. Para verificar o tipo de máquina e a plataforma de CPU da VM, veja os detalhes da VM.

  2. Se precisar de alterar o tipo de máquina da VM, faça o seguinte:

    1. Para verificar se uma plataforma de CPU suportada está disponível na zona onde a VM está localizada, consulte o artigo Regiões e zonas disponíveis.

    2. Altere o tipo de máquina da seguinte forma:

      • Para ativar o tipo de PMU melhorado, tem de especificar um tipo de máquina C4 com 96 ou 192 vCPUs.

      • Caso contrário, para ativar o tipo de PMU arquitetural ou padrão, especifique qualquer tipo de máquina C4A ou C4.

Não tem de parar a VM para ativar a PMU. No entanto, para que a alteração entre em vigor, tem de reiniciar a VM, conforme descrito nesta secção.

Para ativar a PMU numa VM existente, selecione uma das seguintes opções:

gcloud

  1. Crie um ficheiro YAML vazio.

  2. Para exportar as propriedades de uma VM para o ficheiro YAML que acabou de criar, use o comando gcloud compute instances export:

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

    Substitua o seguinte:

    • VM_NAME: o nome da VM.

    • YAML_FILE: o caminho para o ficheiro YAML que criou no passo anterior.

    • ZONE: a zona onde a VM está localizada.

  3. No ficheiro de configuração YAML, 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 melhorado: ENHANCED

  4. Para atualizar a VM e reiniciá-la, 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 VM_NAME \
        --most-disruptive-allowed-action=RESTART \
        --source=YAML_FILE \
        --zone=ZONE
    

    Substitua o seguinte:

    • VM_NAME: o nome da VM.

    • YAML_FILE: o caminho para o ficheiro YAML com os dados de configuração que modificou no passo anterior.

    • ZONE: a zona onde a VM está localizada.

REST

  1. Crie um ficheiro JSON vazio.

  2. Para ver as propriedades de uma VM existente, faça um pedido GET ao métodoinstances.get:

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

    Substitua o seguinte:

    • PROJECT_ID: o ID do projeto onde a VM está localizada.

    • ZONE: a zona onde a VM está localizada.

    • VM_NAME: o nome de uma VM existente.

  3. No ficheiro JSON vazio que criou nos passos anteriores, faça o seguinte:

    1. Introduza as propriedades da VM a partir do resultado do pedido GET.

    2. 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 melhorado: ENHANCED

  4. Para atualizar a VM e reiniciá-la, faça um pedido PUT ao métodoinstances.update. Na solicitação, faça o seguinte:

    • No URL do pedido, inclua o parâmetro de consulta mostDisruptiveAllowedAction definido como RESTART.

    • Para o corpo do pedido, use as propriedades da VM do ficheiro JSON que criou e atualizou nos passos anteriores.

    O pedido é semelhante ao seguinte:

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

Para mais informações sobre a atualização das propriedades de uma VM, consulte o artigo Atualize as propriedades da instância.

Ative a PMU durante a criação de uma VM

Só pode criar uma VM com a PMU ativada numa zona que contenha uma plataforma de CPU suportada. Para ver uma lista das CPUs disponíveis por zona, consulte o artigo Regiões e zonas disponíveis.

Para criar uma VM com a PMU ativada, selecione uma das seguintes opções:

gcloud

Para criar uma VM com a PMU ativada, use o comando gcloud compute instances create com a flag --performance-monitoring-unit:

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

Substitua o seguinte:

  • VM_NAME: o nome da VM.

  • MACHINE_TYPE: a C4A ou tipo de máquina C4. Se quiser ativar o tipo de PMU melhorado, tem de especificar um tipo de máquina C4 com 96 ou 192 vCPUs. Caso contrário, a criação da VM falha.

  • PMU_TYPE: o tipo de PMU a ativar na VM. Especifique um dos seguintes valores:

    • Tipo de PMU arquitetónica: architectural

    • Tipo de PMU padrão: standard

    • Tipo de PMU melhorado: enhanced

  • ZONE: a zona na qual criar a VM.

REST

Para criar uma VM com a PMU ativada, faça um pedido POST ao método instances.insert. No corpo do pedido, inclua o campo performanceMonitoringUnit:

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

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

  • PROJECT_ID: o ID do projeto no qual criar a VM.

  • ZONE: a zona na qual criar a VM.

  • VM_NAME: o nome da VM.

  • MACHINE_TYPE: a C4A ou tipo de máquina C4. Se quiser ativar o tipo de PMU melhorado, tem de especificar um tipo de máquina C4 com 96 ou 192 vCPUs. Caso contrário, a criação da VM falha.

  • IMAGE_PROJECT: o projeto de imagem que contém a imagem, por exemplo, debian-cloud. Para mais informações sobre os projetos de imagens suportados, consulte o artigo Imagens públicas.

  • IMAGE: especifique uma das seguintes opções:

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

    • Uma família de imagens, que tem de estar formatada como family/IMAGE_FAMILY. Isto especifica a imagem do SO não descontinuada mais recente. Por exemplo, se especificar family/debian-12, é usada a versão mais recente na família de imagens do Debian 12. Para mais informações sobre a utilização de famílias de imagens, consulte o artigo Práticas recomendadas para famílias de imagens.

  • PMU_TYPE: o tipo de PMU a ativar na VM. Especifique um dos seguintes valores:

    • Tipo de PMU arquitetónica: ARCHITECTURAL

    • Tipo de PMU padrão: STANDARD

    • Tipo de PMU melhorado: ENHANCED

Para mais informações sobre como criar uma VM, consulte o artigo Crie e inicie uma instância do Compute Engine.

Ative a PMU ao criar VMs em massa

Só pode criar VMs em massa com a PMU ativada em zonas que contenham uma plataforma de CPU suportada. Para ver uma lista das CPUs disponíveis por zona, consulte o artigo Regiões e zonas disponíveis.

Para criar VMs em massa com a PMU ativada, selecione uma das seguintes opções:

gcloud

Para criar VMs em massa com a PMU ativada, use o comando gcloud compute instances bulk create com a flag --performance-monitoring-unit.

Por exemplo, para criar VMs em massa numa ú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 o seguinte:

  • COUNT: o número de VMs a criar.

  • MACHINE_TYPE: a C4A ou tipo de máquina C4. Se quiser ativar o tipo de PMU melhorado, tem de especificar um tipo de máquina C4 com 96 ou 192 vCPUs. Caso contrário, a criação da VM falha.

  • NAME_PATTERN: o padrão de nome para as VMs. Para substituir uma sequência de números num nome de VM, use uma sequência de carateres de cardinal (#). Por exemplo, usar vm-# para o padrão de nome gera VMs com nomes que começam por vm-1, vm-2 e continuam até ao número de VMs especificado por COUNT.

  • PMU_TYPE: o tipo de PMU a ativar nas VMs. Especifique um dos seguintes valores:

    • Tipo de PMU arquitetónica: architectural

    • Tipo de PMU padrão: standard

    • Tipo de PMU melhorado: enhanced

  • ZONE: a zona na qual criar VMs em massa.

REST

Para criar VMs em massa com a PMU ativada, faça um pedido POST ao método instances.bulkInsert. No corpo do pedido, inclua o campo performanceMonitoringUnit.

Por exemplo, para criar VMs em massa numa única zona e especificar um padrão de nome, faça um pedido POST da seguinte forma:

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

  • PROJECT_ID: o ID do projeto no qual criar VMs em massa.

  • ZONE: a zona na qual criar VMs em massa.

  • COUNT: o número de VMs a criar.

  • NAME_PATTERN: o padrão de nome para as VMs. Para substituir uma sequência de números num nome de VM, use uma sequência de carateres de cardinal (#). Por exemplo, usar vm-# para o padrão de nome gera VMs com nomes que começam por vm-1, vm-2 e continuam até ao número de VMs especificado por COUNT.

  • MACHINE_TYPE: a C4A ou tipo de máquina C4. Se quiser ativar o tipo de PMU melhorado, tem de especificar um tipo de máquina C4 com 96 ou 192 vCPUs. Caso contrário, a criação da VM falha.

  • IMAGE_PROJECT: o projeto de imagem que contém a imagem, por exemplo, debian-cloud. Para mais informações sobre os projetos de imagens suportados, consulte o artigo Imagens públicas.

  • IMAGE: especifique uma das seguintes opções:

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

    • Uma família de imagens, que tem de estar formatada como family/IMAGE_FAMILY. Isto especifica a imagem do SO não descontinuada mais recente. Por exemplo, se especificar family/debian-12, é usada a versão mais recente na família de imagens do Debian 12. Para mais informações sobre a utilização de famílias de imagens, consulte o artigo Práticas recomendadas para famílias de imagens.

  • PMU_TYPE: o tipo de PMU a ativar nas VMs. Especifique um dos seguintes valores:

    • Tipo de PMU arquitetónica: ARCHITECTURAL

    • Tipo de PMU padrão: STANDARD

    • Tipo de PMU melhorado: ENHANCED

Para mais informações sobre como criar VMs em massa, consulte o artigo Crie VMs em massa.

Ative a PMU ao criar um modelo de instância

Se quiser criar um modelo de instância regional com a PMU ativada, certifique-se de que, pelo menos, uma zona na região selecionada contém uma plataforma de CPU suportada. Para ver uma lista das CPUs disponíveis por zona, consulte o artigo Regiões e zonas disponíveis.

Depois de criar um modelo de instância com a PMU ativada, pode usar o modelo para fazer o seguinte:

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

gcloud

Para criar um modelo de instância com a PMU ativada, use o comando gcloud compute instance-templates create com a flag --performance-monitoring-unit. Para criar um modelo de instância regional, também tem de incluir a flag --instance-template-region.

Por exemplo, para criar um modelo de instância regional com a PMU ativada, execute o seguinte comando:

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

Substitua o seguinte:

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

  • REGION: a região na qual criar o modelo de instância.

  • MACHINE_TYPE: a C4A ou tipo de máquina C4. Se quiser ativar o tipo de PMU melhorado, tem de especificar um tipo de máquina C4 com 96 ou 192 vCPUs. Caso contrário, a criação da VM falha.

  • PMU_TYPE: o tipo de PMU a incluir 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 melhorado: enhanced

REST

Para criar um modelo de instância com a PMU ativada, faça um pedido POST a um dos seguintes métodos:

No corpo do pedido, inclua o campo performanceMonitoringUnit.

Por exemplo, para criar um modelo de instância regional com a PMU ativada, faça um pedido POST da seguinte forma:

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

  • PROJECT_ID: o ID do projeto no qual criar o modelo de instância.

  • REGION: a região na qual criar o modelo de instância.

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

  • IMAGE_PROJECT: o projeto de imagem que contém a imagem, por exemplo, debian-cloud. Para mais informações sobre os projetos de imagens suportados, consulte o artigo Imagens públicas.

  • IMAGE: especifique uma das seguintes opções:

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

    • Uma família de imagens, que tem de estar formatada como family/IMAGE_FAMILY. Isto especifica a imagem do SO não descontinuada mais recente. Por exemplo, se especificar family/debian-12, é usada a versão mais recente na família de imagens do Debian 12. Para mais informações sobre a utilização de famílias de imagens, consulte o artigo Práticas recomendadas para famílias de imagens.

  • MACHINE_TYPE: a C4A ou tipo de máquina C4. Se quiser ativar o tipo de PMU melhorado, tem de especificar um tipo de máquina C4 com 96 ou 192 vCPUs. Caso contrário, a criação da VM falha.

  • PMU_TYPE: o tipo de PMU a incluir 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 melhorado: ENHANCED

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

O que se segue?