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

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.s3nsapis.fr/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.s3nsapis.fr/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.s3nsapis.fr/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.s3nsapis.fr/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