Gerenciar a PMU em VMs


Este documento descreve como mudar o tipo de unidade de monitoramento de desempenho (PMU) ativado em uma instância de máquina virtual (VM) ou desativar a PMU em uma VM.

Depois de ativar a PMU em uma VM e executar um software de monitoramento de desempenho nela, faça o seguinte:

  • Mude o tipo de PMU ativado na VM. Isso é útil quando você quer rastrear diferentes tipos de eventos de CPU de baixo nível.

  • Desative a PMU na VM. A desativação da PMU em uma VM é útil quando você não precisa mais acessar os contadores de desempenho da PMU.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

Funções exigidas

Para receber as permissões necessárias e ativar ou desativar o tipo de PMU em uma VM, 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 ou desativar o tipo de PMU em uma VM. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para mudar o tipo de PMU ativado em uma VM:

  • Para atualizar uma VM: compute.instances.update na VM

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

Mudar o tipo de PMU em uma VM

Antes de mudar o tipo de PMU ativado em uma VM, confira os detalhes da VM usando a Google Cloud CLI ou o REST. Na saída do comando ou da solicitação da API, verifique o seguinte:

  1. Para verificar o tipo de PMU ativado na VM, verifique o valor do campo performanceMonitoringUnit.

  2. Para ativar o tipo de PMU aprimorada, verifique se a VM está usando um tipo de máquina C4 com 96 ou 192 vCPUs, verificando o valor do campo machineType. Caso contrário, mude o tipo de máquina da VM.

Não é necessário interromper a VM para mudar o tipo de PMU ativado nela. No entanto, para que a mudança entre em vigor, você precisa reiniciar a VM conforme descrito nesta seção.

Para mudar o tipo de PMU ativado em uma VM, selecione uma das seguintes opções:

gcloud

  1. Crie um arquivo YAML vazio.

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

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

    Substitua:

    • VM_NAME: o nome da VM.

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

    • ZONE: a zona em que a VM está localizada.

  3. No arquivo de configuração YAML, localize o campo performanceMonitoringUnit e mude o valor dele para especificar um tipo de PMU diferente.

    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 VM, 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:

    • VM_NAME: o nome da VM.

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

    • ZONE: a zona em que a VM está localizada.

REST

  1. Crie um arquivo JSON vazio.

  2. Para exportar as propriedades de uma VM 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/VM_NAME
    

    Substitua:

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

    • ZONE: a zona em que a VM está localizada.

    • VM_NAME: o nome de uma VM existente.

  3. No arquivo JSON vazio que você criou nas etapas anteriores, faça o seguinte:

    1. Insira as propriedades da VM fornecidas na saída da solicitação GET.

    2. Localize o campo performanceMonitoringUnit e mude o valor dele para especificar um tipo de PMU diferente.

      "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 VM, faça uma solicitação PUT ao método instances.update. Na solicitação, faça o seguinte:

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

    • Para o corpo da solicitação, use as propriedades da VM fornecidas no arquivo JSON que foi criado e atualizado nas etapas anteriores.

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

Para mais informações sobre como atualizar as propriedades de uma VM, consulte Atualizar as propriedades da VM.

Desativar a PMU em uma VM

Não é necessário interromper a VM para desativar a PMU. No entanto, para que a mudança entre em vigor, você precisa reiniciar a VM conforme descrito nesta seção.

Para desativar a PMU em uma VM, selecione uma das seguintes opções:

gcloud

  1. Crie um arquivo YAML vazio.

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

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

    Substitua:

    • VM_NAME: o nome da VM.

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

    • ZONE: a zona em que a VM está localizada.

  3. No arquivo de configuração YAML, localize o campo performanceMonitoringUnit e defina o valor como NONE.

    advancedMachineFeatures:
      performanceMonitoringUnit: NONE
    
  4. Para atualizar e reiniciar a VM, 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:

    • VM_NAME: o nome da VM.

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

    • ZONE: a zona em que a VM está localizada.

REST

  1. Crie um arquivo JSON vazio.

  2. Para exportar as propriedades de uma VM 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/VM_NAME
    

    Substitua:

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

    • ZONE: a zona em que a VM está localizada.

    • VM_NAME: o nome de uma VM existente.

  3. No arquivo JSON vazio que você criou nas etapas anteriores, faça o seguinte:

    1. Insira as propriedades da VM fornecidas na saída da solicitação GET.

    2. Localize o campo performanceMonitoringUnit e mude o valor dele para NONE.

      "advancedMachineFeatures": {
        "performanceMonitoringUnit": "NONE"
      }
      
  4. Para atualizar e reiniciar a VM, faça uma solicitação PUT ao método instances.update. Na solicitação, faça o seguinte:

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

    • Para o corpo da solicitação, use as propriedades da VM fornecidas no arquivo JSON que foi criado e atualizado nas etapas anteriores.

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

Para mais informações sobre como atualizar as propriedades de uma VM, consulte Atualizar as propriedades da VM.

A seguir