Gerenciar a PMU em VMs

Este documento explica como desativar ou mudar o tipo de unidade de monitoramento de desempenho (PMU) ativada em uma instância de máquina virtual (VM). Para saber mais sobre a PMU, consulte Visão geral da PMU.

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. Essa mudança é útil quando você quer acompanhar diferentes tipos de eventos de CPU de baixo nível.

  • Desative a PMU na VM. Essa ação é útil quando você não precisa mais acessar os contadores de desempenho na 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 Trusted Cloud by S3NS . Para executar códigos ou amostras em 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. After installing the Google Cloud CLI, sign in to the gcloud CLI with your federated identity and 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 a CLI gcloud.

        After installing the Google Cloud CLI, sign in to the gcloud CLI with your federated identity and 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 Trusted Cloud .

Funções exigidas

Para receber as permissões necessárias para 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 ou desativar:

  • 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 C4A ou C4, confira os detalhes da VM usando a Google Cloud CLI ou a API REST. Na saída do comando ou da solicitação de API, verifique o seguinte:

  1. Para verificar o tipo de PMU ativado na VM, verifique o valor do campo performanceMonitoringUnit. Se o campo estiver ausente, a PMU será desativada.

  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 conferir as propriedades de uma VM, 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/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 mostDisruptiveAllowedAction 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.

    A solicitação é semelhante a esta:

    PUT https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?mostDisruptiveAllowedAction=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 conferir as propriedades de uma VM, 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/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 mostDisruptiveAllowedAction 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.

    A solicitação é semelhante a esta:

    PUT https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?mostDisruptiveAllowedAction=RESTART
    
    {
      "advancedMachineFeatures": {
        "performanceMonitoringUnit": "NONE"
      },
      ...
    }
    

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

A seguir