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:

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

  • Desativar 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) ativado em uma instância do Compute Engine ou desativá-lo. 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 Google Cloud serviços e APIs do. Para executar código ou amostras de um ambiente de desenvolvimento local, faça a autenticação no Compute Engine com um destes métodos:

    Selecione a guia para como planeja usar as amostras nesta página:

    gcloud

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

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  • Defina uma região e uma zona padrão.
  • REST

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

      Instale a Google Cloud CLI.

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud 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 que são 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 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 para uma instância A4X, C4A, C4 ou M4, consulte 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 estará desativada.

  2. Se você quiser ativar o tipo de PMU aprimorada, verifique se a instância de computação usa um dos seguintes tipos de máquina conferindo 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, você precisará mudar o tipo de máquina usado pela instância de computação antes de poder monitorar tipos de PMU aprimorados.

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 atual, 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 gcloud compute instances export comando:

    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 gcloud compute instances update-from-file comando com a --most-disruptive-allowed-action flag 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 GET solicitação para o instances.get método:

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

  2. Para atualizar e reiniciar a instância de computação, faça uma PUT solicitação para o instances.update método 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, você precisa 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 saber 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 atual, 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 gcloud compute instances export comando:

    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 gcloud compute instances update-from-file comando com a --most-disruptive-allowed-action flag 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 GET solicitação para o instances.get método:

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

  2. Para atualizar e reiniciar a instância de computação, faça uma PUT solicitação para o instances.update método. 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, você precisa remover o campo performanceMonitoringUnit e, se não houver outros campos no campo 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 saber como atualizar as propriedades de uma instância de computação, consulte Atualizar as propriedades da instância.

A seguir