在 VM 中啟用 PMU


本文說明如何在新的或現有的虛擬機器 (VM) 執行個體中啟用效能監控單元 (PMU)。如要進一步瞭解 PMU,請參閱「PMU 總覽」。

在 C4A 或 C4 VM 中啟用 PMU 並連線後,您可以在 VM 上執行及安裝效能監控軟體,分析及提升 VM 上執行的軟體效能。如果執行高效能運算 (HPC) 或機器學習 (ML) 等對效能要求嚴苛的工作負載,這個方法就非常實用。

事前準備

  • 如果尚未設定驗證,請先完成設定。 「驗證」是指驗證身分的程序,確認您有權存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列任一選項,向 Compute Engine 進行驗證:

    Select the tab for how you plan to use the samples on this page:

    gcloud

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

      gcloud init

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

    2. Set a default region and zone.

    REST

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

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

      gcloud init

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

    詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。

必要的角色

如要取得在新 VM 或現有 VM 中啟用 PMU 所需的權限,請要求管理員為您授予專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這個預先定義的角色具備在新 VM 或現有 VM 中啟用 PMU 所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要在新的或現有 VM 中啟用 PMU,必須具備下列權限:

  • 如要建立 VM,請按照下列步驟操作:
    • 專案的 compute.instances.create 權限
    • 如要使用自訂映像檔建立 VM,請按一下映像檔上的 compute.images.useReadOnly
    • 如要使用快照建立 VM,請按一下快照上的 compute.snapshots.useReadOnly
    • 如要使用執行個體範本建立 VM,請按一下執行個體範本上的 compute.instanceTemplates.useReadOnly
    • 如要將舊版網路指派給 VM:專案的 compute.networks.use
    • 如要為 VM 指定靜態 IP 位址,請在專案中擁有 compute.addresses.use 權限
    • 使用舊版網路時,如要將外部 IP 位址指派給 VM,請在專案中設定 compute.networks.useExternalIp
    • 為 VM 指定子網路:專案或所選子網路的 compute.subnetworks.use
    • 使用虛擬私有雲網路時,如要將外部 IP 位址指派給 VM,請在專案或所選子網路上擁有 compute.subnetworks.useExternalIp 權限
    • 如要為專案中的 VM 設定 VM 執行個體中繼資料,請執行下列指令:compute.instances.setMetadata
    • 如要為 VM 設定標記,請在 VM 上按一下 compute.instances.setTags
    • 如要為 VM 設定標籤,請在 VM 上執行下列步驟:compute.instances.setLabels
    • 如要設定 VM 使用的服務帳戶,請在 VM 上執行 compute.instances.setServiceAccount
    • 如要為 VM 建立新磁碟,請取得專案的 compute.disks.create 權限
    • 如要以唯讀或讀寫模式連接現有磁碟,請對磁碟擁有 compute.disks.use 權限
    • 如要以唯讀模式連接現有磁碟,請對磁碟擁有 compute.disks.useReadOnly 權限
  • 如要建立執行個體範本: 按一下專案的 compute.instanceTemplates.create
  • 如要更新 VM: 按一下 VM 上的 compute.instances.update

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

在 VM 中啟用 PMU

如要在一個或多個 C4A 或 C4 VM 中啟用 PMU,請使用下列其中一種方法:

在一或多個 VM 中啟用 PMU 後,您可以在 VM 上安裝及使用效能監控軟體。

在現有 VM 中啟用 PMU

在現有 VM 中啟用 PMU 前,請先確認 VM 使用支援的機型和 CPU 平台,方法如下:

  1. 如要驗證 VM 的機器類型和 CPU 平台,請查看 VM 的詳細資料

  2. 如要變更 VM 的機器類型,請按照下列步驟操作:

    1. 如要確認 VM 所在區域是否提供支援的 CPU 平台,請參閱「可用地區和區域」。

    2. 變更機器類型,步驟如下:

      • 如要啟用進階 PMU 類型,請指定具有 96 或 192 個 vCPU 的 C4 機器類型

      • 如要啟用「架構」或「標準」PMU 類型,請指定任何 C4A 或 C4 機器類型。

您不必停止 VM 即可啟用 PMU。不過,如要讓變更生效,您必須按照本節所述重新啟動 VM。

如要在現有 VM 中啟用 PMU,請選取下列其中一個選項:

gcloud

  1. 建立空白 YAML 檔案。

  2. 如要將 VM 的屬性匯出至您剛建立的 YAML 檔案,請使用 gcloud compute instances export 指令

    gcloud compute instances export VM_NAME \
        --destination=YAML_FILE \
        --zone=ZONE
    

    更改下列內容:

    • VM_NAME:VM 名稱。

    • YAML_FILE:您在上一步建立的 YAML 檔案路徑。

    • ZONE:VM 所在的區域。

  3. 在 YAML 設定檔中,新增 performanceMonitoringUnit 欄位。如果沒有 advancedMachineFeatures 欄位,請一併新增:

    advancedMachineFeatures:
      performanceMonitoringUnit: PMU_TYPE
    

    PMU_TYPE 替換為下列任一值:

    • 架構 PMU 類型:ARCHITECTURAL

    • 標準 PMU 類型:STANDARD

    • 加強型 PMU 類型:ENHANCED

  4. 如要更新 VM 並重新啟動,請使用 gcloud compute instances update-from-file 指令,並將 --most-disruptive-allowed-action 旗標設為 RESTART

    gcloud compute instances update-from-file VM_NAME \
        --most-disruptive-allowed-action=RESTART \
        --source=YAML_FILE \
        --zone=ZONE
    

    更改下列內容:

    • VM_NAME:VM 名稱。

    • YAML_FILE:YAML 檔案的路徑,內含您在上一步修改的設定資料。

    • ZONE:VM 所在的區域。

REST

  1. 建立空白的 JSON 檔案。

  2. 如要查看現有 VM 的屬性,請向 instances.get 方法發出 GET 要求:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
    

    更改下列內容:

    • PROJECT_ID:VM 所在的專案 ID。

    • ZONE:VM 所在的區域。

    • VM_NAME:現有 VM 的名稱。

  3. 在您於上一個步驟中建立的空白 JSON 檔案中,執行下列操作:

    1. 輸入 GET 要求輸出內容中的 VM 屬性。

    2. advancedMachineFeatures 欄位中,新增 performanceMonitoringUnit 欄位。如果 advancedMachineFeatures 欄位不存在,請一併新增:

      {
        "advancedMachineFeatures": {
          "performanceMonitoringUnit": "PMU_TYPE"
        },
        ...
      }
      

      PMU_TYPE 替換為下列其中一個值:

      • 架構 PMU 類型:ARCHITECTURAL

      • 標準 PMU 類型:STANDARD

      • 加強型 PMU 類型:ENHANCED

  4. 如要更新 VM 並重新啟動,請對 instances.update 方法發出 PUT 要求。在要求中執行下列操作:

    • 在要求網址中,加入設為 RESTARTmostDisruptiveAllowedAction 查詢參數。

    • 在要求主體中,使用您在前幾個步驟中建立及更新的 JSON 檔案中的 VM 屬性。

    要求類似於下列內容:

    PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?mostDisruptiveAllowedAction=RESTART
    
    {
      "advancedMachineFeatures": {
        "performanceMonitoringUnit": "PMU_TYPE"
      },
      ...
    }
    

如要進一步瞭解如何更新 VM 的屬性,請參閱「更新執行個體屬性」。

建立 VM 時啟用 PMU

您只能在包含支援 CPU 平台的區域中,建立已啟用 PMU 的 VM。如需各區域的可用 CPU 清單,請參閱「可用地區和區域」。

如要建立已啟用 PMU 的 VM,請選取下列其中一個選項:

gcloud

如要建立啟用 PMU 的 VM,請使用 gcloud compute instances create 指令搭配 --performance-monitoring-unit 旗標:

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --performance-monitoring-unit=PMU_TYPE \
    --zone=ZONE

更改下列內容:

  • VM_NAME:VM 名稱。

  • MACHINE_TYPEC4AC4 機型。如要啟用進階 PMU 類型,請指定具有 96 或 192 個 vCPU 的 C4 機器類型。否則 VM 建立作業會失敗。

  • PMU_TYPE:要在 VM 中啟用的 PMU 類型。 請指定下列其中一個值:

    • 架構 PMU 類型:architectural

    • 標準 PMU 類型:standard

    • 加強型 PMU 類型:enhanced

  • ZONE:建立 VM 的可用區。

REST

如要建立啟用 PMU 的 VM,請對 instances.insert 方法發出 POST 要求。在要求主體中加入 performanceMonitoringUnit 欄位:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "advancedMachineFeatures": {
    "performanceMonitoringUnit": "PMU_TYPE"
  }
}

更改下列內容:

  • PROJECT_ID:要在其中建立 VM 的專案 ID。

  • ZONE:建立 VM 的可用區。

  • VM_NAME:VM 名稱。

  • MACHINE_TYPEC4AC4 機型。如要啟用進階 PMU 類型,請指定具有 96 或 192 個 vCPU 的 C4 機器類型。否則 VM 建立作業會失敗。

  • IMAGE_PROJECT:包含圖片的圖片專案,例如 debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。

  • IMAGE:指定下列其中一項:

    • 特定版本的 OS 映像檔,例如 debian-12-bookworm-v20240617

    • 映像檔系列,格式必須為 family/IMAGE_FAMILY。這會指定最新的非已淘汰 OS 映像檔。舉例來說,如果您指定 family/debian-12,系統會使用 Debian 12 映像檔系列中的最新版本。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。

  • PMU_TYPE:要在 VM 中啟用的 PMU 類型。 請指定下列其中一個值:

    • 架構 PMU 類型:ARCHITECTURAL

    • 標準 PMU 類型:STANDARD

    • 加強型 PMU 類型:ENHANCED

如要進一步瞭解如何建立 VM,請參閱「建立及啟動 Compute Engine 執行個體」。

大量建立 VM 時啟用 PMU

您只能在含有支援 CPU 平台的區域中,大量建立已啟用 PMU 的 VM。如需各區域的可用 CPU 清單,請參閱「可用地區和區域」。

如要大量建立啟用 PMU 的 VM,請選取下列任一選項:

gcloud

如要大量建立啟用 PMU 的 VM,請使用 gcloud compute instances bulk create 指令搭配 --performance-monitoring-unit 旗標。

舉例來說,如要在單一可用區中大量建立 VM,並指定名稱模式,請執行下列指令:

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern="NAME_PATTERN" \
    --performance-monitoring-unit=PMU_TYPE \
    --zone=ZONE

更改下列內容:

  • COUNT:要建立的 VM 數量。

  • MACHINE_TYPEC4AC4 機型。如要啟用進階 PMU 類型,請指定具有 96 或 192 個 vCPU 的 C4 機器類型。否則 VM 建立作業會失敗。

  • NAME_PATTERN:VM 的名稱模式。如要取代 VM 名稱中的一連串數字,請使用一連串井字號 (#) 字元。舉例來說,使用 vm-# 做為名稱模式會產生以 vm-1vm-2 開頭的 VM,並持續產生 VM,直到 COUNT 指定的 VM 數量為止。

  • PMU_TYPE:要在 VM 中啟用的 PMU 類型。 請指定下列其中一個值:

    • 架構 PMU 類型:architectural

    • 標準 PMU 類型:standard

    • 加強型 PMU 類型:enhanced

  • ZONE:要大量建立 VM 的可用區。

REST

如要大量建立啟用 PMU 的 VM,請對 instances.bulkInsert 方法發出 POST 要求。在要求主體中,請納入 performanceMonitoringUnit 欄位。

舉例來說,如要在單一可用區中大量建立 VM,並指定名稱模式,請發出 POST 要求,如下所示:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "advancedMachineFeatures": {
      "performanceMonitoringUnit": "PMU_TYPE"
    }
  }
}

更改下列內容:

  • PROJECT_ID:要在其中大量建立 VM 的專案 ID。

  • ZONE:要大量建立 VM 的可用區。

  • COUNT:要建立的 VM 數量。

  • NAME_PATTERN:VM 的名稱模式。如要取代 VM 名稱中的一連串數字,請使用一連串井字號 (#) 字元。舉例來說,使用 vm-# 做為名稱模式會產生以 vm-1vm-2 開頭的 VM,並持續產生 VM,直到 COUNT 指定的 VM 數量為止。

  • MACHINE_TYPEC4AC4 機型。如要啟用進階 PMU 類型,請指定具有 96 或 192 個 vCPU 的 C4 機器類型。否則 VM 建立作業會失敗。

  • IMAGE_PROJECT:包含圖片的圖片專案,例如 debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。

  • IMAGE:指定下列其中一項:

    • 特定版本的 OS 映像檔,例如 debian-12-bookworm-v20240617

    • 映像檔系列,格式必須為 family/IMAGE_FAMILY。這會指定最新的非已淘汰 OS 映像檔。舉例來說,如果您指定 family/debian-12,系統會使用 Debian 12 映像檔系列中的最新版本。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。

  • PMU_TYPE:要在 VM 中啟用的 PMU 類型。 請指定下列其中一個值:

    • 架構 PMU 類型:ARCHITECTURAL

    • 標準 PMU 類型:STANDARD

    • 加強型 PMU 類型:ENHANCED

如要進一步瞭解如何大量建立 VM,請參閱「大量建立 VM」。

建立執行個體範本時啟用 PMU

如要建立啟用 PMU 的區域執行個體範本,請確保所選區域內至少有一個區域包含支援的 CPU 平台。如需各區域的可用 CPU 清單,請參閱「可用地區和區域」。

建立啟用 PMU 的執行個體範本後,您可以使用該範本執行下列操作:

如要建立啟用 PMU 的執行個體範本,請選取下列任一選項:

gcloud

如要建立啟用 PMU 的執行個體範本,請使用 gcloud compute instance-templates create 指令搭配 --performance-monitoring-unit 旗標。如要建立地區執行個體範本,您也必須加入 --instance-template-region 旗標。

舉例來說,如要建立啟用 PMU 的區域執行個體範本,請執行下列指令:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --performance-monitoring-unit=PMU_TYPE

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。

  • REGION:要建立執行個體範本的區域。

  • MACHINE_TYPEC4AC4 機型。如要啟用進階 PMU 類型,請指定具有 96 或 192 個 vCPU 的 C4 機器類型。否則 VM 建立作業會失敗。

  • PMU_TYPE:要在執行個體範本中加入的 PMU 類型。請指定下列其中一個值:

    • 架構 PMU 類型:architectural

    • 標準 PMU 類型:standard

    • 加強型 PMU 類型:enhanced

REST

如要建立啟用 PMU 的執行個體範本,請對下列其中一種方法發出 POST 要求:

在要求主體中,請納入 performanceMonitoringUnit 欄位。

舉例來說,如要建立啟用 PMU 的地區執行個體範本,請發出下列 POST 要求:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "advancedMachineFeatures": {
      "performanceMonitoringUnit": "PMU_TYPE"
    }
  }
}

更改下列內容:

  • PROJECT_ID:要在其中建立執行個體範本的專案 ID。

  • REGION:要建立執行個體範本的區域。

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。

  • IMAGE_PROJECT:包含圖片的圖片專案,例如 debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。

  • IMAGE:指定下列其中一項:

    • 特定版本的 OS 映像檔,例如 debian-12-bookworm-v20240617

    • 映像檔系列,格式必須為 family/IMAGE_FAMILY。這會指定最新的非已淘汰 OS 映像檔。舉例來說,如果您指定 family/debian-12,系統會使用 Debian 12 映像檔系列中的最新版本。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。

  • MACHINE_TYPEC4AC4 機型。如要啟用進階 PMU 類型,請指定具有 96 或 192 個 vCPU 的 C4 機器類型。否則 VM 建立作業會失敗。

  • PMU_TYPE:要在執行個體範本中加入的 PMU 類型。請指定下列其中一個值:

    • 架構 PMU 類型:ARCHITECTURAL

    • 標準 PMU 類型:STANDARD

    • 加強型 PMU 類型:ENHANCED

如要進一步瞭解如何建立執行個體範本,請參閱建立執行個體範本

後續步驟