在 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. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      2. Set a default region and zone.
      3. REST

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

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        詳情請參閱 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

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

後續步驟