Cómo ver la topología de una instancia de procesamiento

En este documento, se explica cómo ver la ubicación física de tus instancias de Compute Engine de A4X Max, A4X, A4, A3 Ultra, A3 Mega y A3 High (8 GPUs) que se ejecutan en bloques de capacidad reservados.

Después de crear instancias de A4X Max, A4X, A4, A3 Ultra, A3 Mega y A3 High (8 GPUs), puedes ver sus disposiciones para verificar qué instancias están más cerca entre sí. Si comprendes la proximidad de las instancias, puedes hacer lo siguiente:

  • Ajusta el diseño de tu aplicación o carga de trabajo para minimizar aún más la latencia de la red.

  • Soluciona problemas de latencia o rendimiento de red de instancias que se comunican con frecuencia, si se encuentran inesperadamente muy lejos.

Antes de comenzar

  • Revisa la terminología que se usa en las funciones de Cluster Director.
  • Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    REST

    Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.

      Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:

      gcloud init

      Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

    Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud .

Roles obligatorios

Para obtener los permisos que necesitas para ver la topología de la instancia de procesamiento, pídele a tu administrador que te otorgue el rol de IAM Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para ver la topología de la instancia de procesamiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para ver la topología de la instancia de procesamiento:

  • Para ver los detalles de una instancia, haz clic en compute.instances.get en el proyecto.
  • Para ver una lista de instancias, usa compute.instances.list en el proyecto.

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Información sobre la topología de las instancias de procesamiento

Cuando ves los detalles de una instancia de procesamiento en ejecución, puedes comprender su ubicación física en un clúster. Para ello, verifica el campo Host físico (Physical host) en la consola de Google Cloud o el campo physicalHostTopology en gcloud CLI, la API de Compute Engine o consulta la clave de metadatos. Estos campos contienen los siguientes subcampos:

  • cluster: Es el nombre global del clúster.

  • block: Es el ID específico de la organización del bloque reservado en el que se encuentra la instancia.

  • sub-block: Es el ID específico de la organización del subbloque en el que se encuentra la instancia.

  • host: Es el ID específico de la organización del host en el que se ejecuta la instancia.

Para comprender la proximidad de las instancias, compara los valores de los campos Host físico o physicalHostTopology entre las instancias. Cuantos más subcampos compartan las instancias, más cerca se encontrarán físicamente.

También puedes ver la topología de una reserva en la que se crean las instancias de procesamiento. Los campos physicalHostTopology de una reserva y una instancia muestran los mismos campos block y cluster. Por ejemplo, cuando ves un bloque reservado específico, puedes ver el nombre y el subbloque de todas las instancias que se implementan en el bloque. Para obtener más información sobre la topología de una reserva, consulta Cómo ver la topología de una reserva.

Cómo ver la topología de una instancia de procesamiento

Para ver la ubicación física de varias instancias de procesamiento en ejecución a la vez, usa la API de REST. De lo contrario, selecciona cualquiera de las siguientes opciones:

Console

  1. En la consola de Google Cloud , ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. En la columna Nombre, haz clic en el nombre de la instancia cuyos detalles deseas ver. Aparecerá una página con los detalles de la instancia y se seleccionará la pestaña Detalles.

  3. En la sección Información básica, verifica el valor del campo Host físico.

gcloud

Para ver la ubicación física de una instancia de procesamiento en ejecución, usa el comando gcloud compute instances describe con la marca --flatten=resourceStatus.physicalHostTopology:

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

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia.

  • ZONE: Es la zona en la que existe la instancia.

El resultado es similar a lo siguiente:

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

REST

Para ver la ubicación física de tus instancias de procesamiento en ejecución, realiza una de las siguientes solicitudes GET. Cuando realices una solicitud, debes incluir el parámetro de búsqueda fields y especificar que solo se muestren los campos name, machineType y physicalHostTopology de una instancia. También debes incluir el parámetro de consulta filter y especificar que solo se deben enumerar las instancias en ejecución.

  • Para ver una lista de tus instancias en todas las zonas, usa el 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 ver una lista de tus instancias en una zona específica, usa el 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
    

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que existen las instancias.

  • ZONE: Es la zona en la que existen las instancias.

El resultado es similar a lo siguiente:

{
  "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"
        }
      }
    },
    ...
  ]
}

Si deseas definir mejor tu lista de instancias, edita la expresión de filtro en el parámetro de consulta filter.

Cómo ver la topología de la instancia de procesamiento consultando la clave de metadatos

Para ver la ubicación física de una instancia de procesamiento en ejecución consultando la clave de metadatos physical_host_topology, selecciona una de las siguientes opciones:

Instancias de Linux

  1. Conéctate a tu instancia de procesamiento de Linux.

  2. Desde tu instancia de Linux, crea una consulta con la herramienta de curl. Para consultar la clave de metadatos physical_host_topology en las instancias de Linux, ejecuta el siguiente comando:

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

    El resultado es similar a lo siguiente:

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

Instancias de Windows

  1. Conéctate a tu instancia de procesamiento de Windows.

  2. Desde tu instancia de Windows, crea una consulta con el comando Invoke-RestMethod. Para consultar la clave de metadatos physical_host_topology en las instancias de Windows, ejecuta el siguiente comando:

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

    El resultado es similar a lo siguiente:

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

¿Qué sigue?