Gerenciar a PMU em instâncias do Compute Engine

Depois de ativar a PMU em uma instância de computação e executar um software de monitoramento de desempenho nela, você pode fazer o seguinte:

  • Mude o tipo de PMU ativado na instância de computação. Essa mudança é útil quando você quer rastrear diferentes tipos de eventos de CPU de baixo nível.

  • Desative a PMU na instância de computação. Essa ação é útil quando você não precisa mais acessar os contadores de desempenho na PMU.

Este documento explica como mudar o tipo de unidade de monitoramento de desempenho (PMU) ativada em uma instância do Compute Engine ou desativá-la. Para saber mais sobre a PMU, consulte 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ó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. 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 mudar o tipo de PMU ativado em uma instância de computação ou desativá-lo, 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 mudar o tipo de PMU ativado em uma instância de computação ou desativá-lo. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para mudar o tipo de PMU ativado em uma instância de computação ou desativá-lo:

  • 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.

Mudar o tipo de PMU em uma instância de computação

Antes de mudar o tipo de PMU de uma instância A4X, C4A, C4 ou M4, confira os detalhes da instância de computação 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 se o tipo de PMU está ativado na instância de computação, confira 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 instância de computação usa um dos seguintes tipos de máquina verificando o valor do campo machineType:

    • Um 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

    Se a instância de computação usar um tipo de máquina diferente, mude o tipo de máquina usado pela instância de computação antes de monitorar os tipos de PMU avançados.

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

Para mudar o tipo de PMU ativado 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, 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 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:

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

    • 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 instância de computação está.

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 a instância de computação está localizada.

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

    • INSTANCE_NAME: o nome de uma 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 mudar o valor do campo performanceMonitoringUnit para o tipo de PMU escolhido.

    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.

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

É possível desativar a PMU em uma instância de computação sem interrompê-la. No entanto, para que a mudança entre em vigor, você precisa reiniciar a instância de computação conforme descrito nesta seção.

Para desativar 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, remova o campo performanceMonitoringUnit. Se o campo advancedMachineFeatures estiver vazio, remova-o também.

    advancedMachineFeatures:
      performanceMonitoringUnit: PMU_TYPE
    
  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:

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

    • 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 instância de computação está.

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 a instância de computação está.

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

    • INSTANCE_NAME: o nome de uma 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. 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 a saída da solicitação GET da etapa anterior. No entanto, é necessário remover o campo performanceMonitoringUnit e, se não houver outros campos em advancedMachineFeatures, o campo advancedMachineFeatures 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": {
        ...
      }~,
      ...
    }
    

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

A seguir