查看運算執行個體的拓撲

本文說明如何查看在預留容量區塊上執行的 A4X Max、A4X、A4、A3 Ultra、A3 Mega 和 A3 High (8 個 GPU) Compute Engine 執行個體的實體位置。

建立 A4X Max、A4X、A4、A3 Ultra、A3 Mega 和 A3 High (8 個 GPU) 執行個體後,您可以查看這些執行個體的排列方式,確認哪些執行個體最接近。瞭解執行個體鄰近性後,您就能執行下列操作:

  • 調整應用程式或工作負載設計,進一步縮短網路延遲時間。

  • 如果經常通訊的執行個體意外相距遙遠,請排解執行個體的網路延遲或效能問題。

事前準備

  • 查看 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

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

    詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。

必要的角色

如要取得查看 Compute 執行個體拓撲所需的權限,請要求管理員授予您專案的「Compute 執行個體管理員 (v1)」 (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備查看運算執行個體拓撲所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要查看運算執行個體拓撲,必須具備下列權限:

  • 如要查看執行個體的詳細資料: compute.instances.get 專案
  • 如要查看執行個體清單: 在專案上按一下 compute.instances.list

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

瞭解運算執行個體拓撲

查看執行中運算執行個體的詳細資料時,您可以檢查「實體主機」欄位 (適用於 Google Cloud 控制台) 或 physicalHostTopology 欄位 (適用於 gcloud CLI、Compute Engine API,或查詢中繼資料鍵),瞭解執行個體在叢集中的實體位置。這些欄位包含下列子欄位:

  • cluster:叢集的全域名稱。

  • block:執行個體所在的預留區塊專屬 ID。

  • sub-block:執行個體所在的子區塊專屬 ID。

  • host:執行個體所在主機的機構專屬 ID。

如要瞭解執行個體鄰近程度,請比較執行個體之間的「實體主機」physicalHostTopology 欄位值。執行個體共用的子欄位越多,實體位置就越接近。

您也可以查看建立運算執行個體的預留空間拓撲。預留項目和執行個體的 physicalHostTopology 欄位會顯示相同的 blockcluster 欄位。舉例來說,查看特定預留區塊時,您可以查看部署在該區塊中的所有執行個體名稱和子區塊。如要進一步瞭解預訂的拓撲,請參閱「查看預訂的拓撲」。

查看運算執行個體拓撲

如要一次查看多個執行中運算執行個體的實際位置,請使用 REST API。否則,請選取下列任一選項:

控制台

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 在「名稱」欄中,按一下要查看詳細資料的執行個體名稱。系統會顯示執行個體詳細資料頁面,並選取「Details」(詳細資料) 分頁。

  3. 在「Basic information」(基本資訊) 區段中,檢查「Physical host」(實體主機) 欄位的值。

gcloud

如要查看執行中運算執行個體的實際位置,請使用 gcloud compute instances describe 指令並加上 --flatten=resourceStatus.physicalHostTopology 旗標:

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

更改下列內容:

  • INSTANCE_NAME:執行個體名稱。

  • ZONE:執行個體所在的可用區。

輸出結果會與下列內容相似:

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

REST

如要查看執行中運算執行個體的實體位置,請發出下列其中一個 GET 要求。提出要求時,您必須加入 fields 查詢參數,並指定只顯示執行個體的 namemachineTypephysicalHostTopology 欄位。您也必須加入 filter 查詢參數,並指定只列出執行中的執行個體。

  • 如要查看所有區域的執行個體清單: 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
    
  • 如要查看特定區域中的執行個體清單: 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
    

更改下列內容:

  • PROJECT_ID:執行個體所在的專案 ID。

  • ZONE:執行個體所在的可用區。

輸出結果會與下列內容相似:

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

如要修正執行個體清單,請編輯 filter 查詢參數中的篩選運算式。

查詢中繼資料鍵,查看運算執行個體拓撲

如要透過查詢 physical_host_topology 中繼資料鍵,查看執行中運算執行個體的實際位置,請選取下列其中一個選項:

Linux 執行個體

  1. 連線至 Linux Compute 執行個體。

  2. 在 Linux 執行個體中,使用 curl 工具建立查詢。如要在 Linux 執行個體上查詢 physical_host_topology 中繼資料金鑰,請執行下列指令:

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

    輸出結果會與下列內容相似:

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

Windows 執行個體

  1. 連線至 Windows Compute 執行個體。

  2. 在 Windows 執行個體中,使用 Invoke-RestMethod 指令建立查詢。如要在 Windows 執行個體上查詢 physical_host_topology 中繼資料金鑰,請執行下列指令:

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

    輸出結果會與下列內容相似:

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

後續步驟