Ver a topologia de uma instância de computação

Neste documento, explicamos como conferir a localização física das instâncias A4X Max, A4X, A4, A3 Ultra, A3 Mega e A3 High (8 GPUs) que são executadas em blocos de capacidade reservada. Depois de criar instâncias A4X Max, A4X, A4, A3 Ultra, A3 Mega e A3 High (8 GPUs), é possível conferir a organização delas para verificar quais instâncias do Compute Engine estão mais próximas umas das outras. Ao entender a proximidade da instância, é possível fazer o seguinte:

  • Ajuste o design do aplicativo ou da carga de trabalho para minimizar ainda mais a latência de rede.

  • Resolva problemas de latência ou desempenho de rede de instâncias de computação que se comunicam com frequência, caso estejam inesperadamente localizadas muito distantes umas das outras.

Para conferir a topologia dos clusters no Cluster Director, consulte Visualizar topologia do cluster.

Antes de começar

Funções exigidas

Para receber as permissões necessárias para visualizar a topologia da instância de computação, 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 visualizar a topologia da instância de computação. 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 conferir a topologia da instância de computação:

  • Para conferir os detalhes de uma instância: compute.instances.get no projeto
  • Para conferir uma lista de instâncias: compute.instances.list no projeto

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

Entender a topologia da instância de computação

Ao visualizar os detalhes de uma instância de computação em execução, é possível entender a localização física dela em um cluster verificando o campo Host físico (para o console Google Cloud ) ou o campo physicalHostTopology (para a CLI gcloud, a API Compute Engine ou consultando a chave de metadados). Esses campos contêm os seguintes subcampos:

  • cluster: o nome global do cluster.

  • block: o ID específico da organização do bloco reservado em que a instância está localizada.

  • sub-block: o ID específico da organização do subbloco em que a instância está localizada.

  • host: o ID específico da organização do host em que a instância é executada.

Para entender a proximidade da instância, compare os valores dos campos Host físico ou physicalHostTopology entre as instâncias. Quanto mais subcampos as instâncias compartilharem, mais próximas elas estarão fisicamente.

Também é possível ver a topologia de uma reserva em que as instâncias de computação são criadas. Os campos physicalHostTopology de uma reserva e de uma instância mostram os mesmos campos block e cluster. Por exemplo, ao visualizar um bloco reservado específico, é possível conferir o nome e o sub-bloco de todas as instâncias implantadas nele. Para mais informações sobre a topologia de uma reserva, consulte Ver a topologia de uma reserva.

Ver a topologia da instância de computação

Para conferir o local físico de várias instâncias de computação em execução de uma só vez, use a API REST. Caso contrário, selecione uma destas opções:

Console

  1. No console do Google Cloud , acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Na coluna Nome, clique no nome da instância para ver os detalhes. Uma página com os detalhes da instância vai aparecer, e a guia Detalhes será selecionada.

  3. Na seção Informações básicas, verifique o valor do campo Host físico.

gcloud

Para conferir o local físico de uma instância de computação em execução, use o comando gcloud compute instances describe com a flag --flatten=resourceStatus.physicalHostTopology:

gcloud compute instances describe INSTANCE_NAME \
    --flatten=resourceStatus.physicalHostTopology \
    --zone=ZONE

Substitua:

  • INSTANCE_NAME: o nome da instância.

  • ZONE: a zona em que a instância está.

O resultado será o seguinte:

---
cluster: europe-west1-cluster-jfhb
block: 3e3056e23cf91a5cb4a8621b6a52c100
subBlock: 0fc09525cbd5abd734342893ca1c083f
host: 1215168a4ecdfb434fd4d28056589059

REST

Para ver o local físico das instâncias de computação em execução, faça uma das seguintes solicitações GET. Ao fazer uma solicitação, inclua o parâmetro de consulta fields e especifique para mostrar apenas os campos name, machineType e physicalHostTopology de uma instância. Você também precisa incluir o parâmetro de consulta filter e especificar para listar apenas as instâncias em execução.

  • Para conferir uma lista das suas instâncias em todas as zonas: método instances.aggregatedList

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
    
  • Para conferir uma lista das suas instâncias em uma zona específica: método instances.list

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
    

Substitua:

  • PROJECT_ID: o ID do projeto em que as instâncias estão.

  • ZONE: a zona em que as instâncias estão.

O resultado será o seguinte:

{
  "items": [
    {
      "name": "vm-01",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
      "resourceStatus": {
        "physicalHostTopology": {
          "cluster": "europe-west1-cluster-jfhb",
          "block": "3e3056e23cf91a5cb4a8621b6a52c100",
          "subBlock": "0fc09525cbd5abd734342893ca1c083f",
          "host": "1215168a4ecdfb434fd4d28056589059"
        }
      }
    },
    {
      "name": "vm-02",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
      "resourceStatus": {
        "physicalHostTopology": {
          "cluster": "europe-west1-cluster-jfhb",
          "block": "3e3056e23cf91a5cb4a8621b6a52c100",
          "subBlock": "1fc18636cbd4abd623553784ca2c174e",
          "host": "2326279b5ecdfc545fd5e39167698168"
        }
      }
    },
    ...
  ]
}

Se quiser refinar sua lista de instâncias, edite a expressão de filtro no parâmetro de consulta filter.

Consultar a topologia da instância de computação usando a chave de metadados

Para conferir o local físico de uma instância de computação em execução consultando a chave de metadados physical_host_topology, selecione uma das seguintes opções:

Instâncias do Linux

  1. Conecte-se à instância de computação do Linux.

  2. Na instância do Linux, crie uma consulta usando a ferramenta curl. Para consultar a chave de metadados physical_host_topology em instâncias do Linux, execute o seguinte comando:

    user@myinst:~$ curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology
    

    O resultado será o seguinte:

    {
      "cluster": "europe-west1-cluster-jfhb",
      "block": "3e3056e23cf91a5cb4a8621b6a52c100",
      "subBlock": "1fc18636cbd4abd623553784ca2c174e",
      "host": "2326279b5ecdfc545fd5e39167698168"
    }
    

Instâncias do Windows

  1. Conecte-se à instância de computação do Windows.

  2. Na instância do Windows, crie uma consulta usando o comando Invoke-RestMethod. Para consultar a chave de metadados physical_host_topology em instâncias do Windows, execute o seguinte comando:

    PS C:\> 
    $value = (Invoke-RestMethod `
            -Headers @{'Metadata-Flavor' = 'Google'} `
            -Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology")
    $value
    

    O resultado será o seguinte:

    {
      "cluster": "europe-west1-cluster-jfhb",
      "block": "3e3056e23cf91a5cb4a8621b6a52c100",
      "subBlock": "1fc18636cbd4abd623553784ca2c174e",
      "host": "2326279b5ecdfc545fd5e39167698168"
    }
    

A seguir