在運算執行個體中啟用 PMU,並在運算執行個體上執行效能監控軟體後,您就可以執行下列操作:
變更在運算執行個體中啟用的 PMU 類型。如要追蹤不同類型的低階 CPU 事件,這項變更就非常實用。
在運算執行個體中停用 PMU。如果您不再需要存取 PMU 中的效能計數器,這項操作就非常實用。
本文說明如何變更 Compute Engine 執行個體中已啟用的效能監控單元 (PMU) 類型,或停用 PMU。如要進一步瞭解 PMU,請參閱 PMU 總覽。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上範例的預計用途分頁:
gcloud
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
- 設定預設區域和可用區。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
必要的角色
如要取得變更 Compute 執行個體中已啟用 PMU 類型或停用該類型的權限,請要求管理員授予您專案的「Compute 執行個體管理員 (v1) 」(roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備變更運算執行個體中已啟用 PMU 類型或停用 PMU 類型所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要變更或停用運算執行個體中啟用的 PMU 類型,必須具備下列權限:
-
如要更新運算執行個體:
在運算執行個體上按
compute.instances.update
變更運算執行個體中的 PMU 類型
變更現有 A4X、C4A、C4 或 M4 執行個體的 PMU 類型前,請先使用 Google Cloud CLI 或 REST API 查看運算執行個體的詳細資料。在指令或 API 要求的輸出內容中,確認下列事項:
如要確認運算執行個體是否已啟用 PMU 類型,請檢查
performanceMonitoringUnit欄位的值。如果缺少這個欄位,PMU 就會停用。如要啟用強化型 PMU 類型,請檢查
machineType欄位的值,確認運算執行個體使用下列其中一種機型:具備 144 或 288 個 vCPU 的 C4 機型
下列其中一種 M4 機型:
m4-megamem-112m4-megamem-224m4-ultramem-56m4-ultramem-112m4-ultramem-224
如果運算執行個體使用其他機型,您必須變更運算執行個體使用的機型,才能監控強化型 PMU 類型。
您不必停止運算執行個體,即可變更 PMU 類型。不過,如要讓變更生效,您必須按照本節所述重新啟動運算執行個體。
如要變更現有運算執行個體中啟用的 PMU 類型,請選取下列任一選項:
gcloud
建立空白 YAML 檔案。
如要將運算執行個體的屬性匯出至您剛才建立的 YAML 檔案,請使用
gcloud compute instances export指令:gcloud compute instances export INSTANCE_NAME \ --destination=YAML_FILE \ --zone=ZONE更改下列內容:
INSTANCE_NAME:運算執行個體的名稱。YAML_FILE:您在上一個步驟中建立的 YAML 檔案路徑。ZONE:運算執行個體所在的可用區。
在 YAML 設定檔中,找出
performanceMonitoringUnit欄位,然後變更其值,指定其他 PMU 類型:advancedMachineFeatures: performanceMonitoringUnit: PMU_TYPE將
PMU_TYPE替換為下列其中一個值:架構 PMU 類型:
ARCHITECTURAL標準 PMU 類型:
STANDARD加強型 PMU 類型:
ENHANCED
如要更新並重新啟動運算執行個體,請使用
gcloud compute instances update-from-file指令,並將--most-disruptive-allowed-action旗標設為RESTART:gcloud compute instances update-from-file INSTANCE_NAME \ --most-disruptive-allowed-action=RESTART \ --source=YAML_FILE \ --zone=ZONE更改下列內容:
INSTANCE_NAME:運算執行個體的名稱。YAML_FILE:YAML 檔案的路徑,其中包含您在上一個步驟中修改的設定資料。ZONE:運算執行個體所在的可用區。
REST
如要查看現有運算執行個體的屬性,請向
instances.get方法發出GET要求:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME更改下列內容:
PROJECT_ID:運算執行個體所在的專案 ID。ZONE:運算執行個體所在的可用區。INSTANCE_NAME:現有運算執行個體的名稱。
如要更新並重新啟動運算執行個體,請向
instances.update方法發出PUT要求,如下所示:在要求網址中,加入設為
RESTART的mostDisruptiveAllowedAction查詢參數。在要求主體中,使用上一個步驟的
GET要求輸出內容。不過,在advancedMachineFeatures欄位中,您必須將performanceMonitoringUnit欄位的值變更為所選的 PMU 類型。
PUT要求類似於下列要求:PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=RESTART { "advancedMachineFeatures": { "performanceMonitoringUnit": "PMU_TYPE" }, ... }將
PMU_TYPE替換為下列其中一個值:架構 PMU 類型:
ARCHITECTURAL標準 PMU 類型:
STANDARD加強型 PMU 類型:
ENHANCED
如要進一步瞭解如何更新運算執行個體的屬性,請參閱「更新執行個體屬性」。
在運算執行個體中停用 PMU
您可以在運算執行個體中停用 PMU,不必停止運算執行個體。不過,如要讓變更生效,您必須按照本節所述重新啟動運算執行個體。
如要在現有運算執行個體中停用 PMU,請選取下列任一選項:
gcloud
建立空白 YAML 檔案。
如要將運算執行個體的屬性匯出至您剛才建立的 YAML 檔案,請使用
gcloud compute instances export指令:gcloud compute instances export INSTANCE_NAME \ --destination=YAML_FILE \ --zone=ZONE更改下列內容:
INSTANCE_NAME:運算執行個體的名稱。YAML_FILE:您在上一個步驟中建立的 YAML 檔案路徑。ZONE:運算執行個體所在的可用區。
在 YAML 設定檔中,移除
performanceMonitoringUnit欄位。如果advancedMachineFeatures欄位為空,請一併移除。advancedMachineFeatures: performanceMonitoringUnit: PMU_TYPE如要更新並重新啟動運算執行個體,請使用
gcloud compute instances update-from-file指令,並將--most-disruptive-allowed-action旗標設為RESTART:gcloud compute instances update-from-file INSTANCE_NAME \ --most-disruptive-allowed-action=RESTART \ --source=YAML_FILE \ --zone=ZONE更改下列內容:
INSTANCE_NAME:運算執行個體的名稱。YAML_FILE:YAML 檔案的路徑,其中包含您在上一個步驟中修改的設定資料。ZONE:運算執行個體所在的可用區。
REST
如要查看現有運算執行個體的屬性,請向
instances.get方法發出GET要求:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME更改下列內容:
PROJECT_ID:運算執行個體所在的專案 ID。ZONE:運算執行個體所在的可用區。INSTANCE_NAME:現有運算執行個體的名稱。
如要更新並重新啟動運算執行個體,請對
instances.update方法提出PUT要求。 請在要求中執行下列操作:在要求網址中,加入設為
RESTART的mostDisruptiveAllowedAction查詢參數。在要求主體中,使用上一個步驟的
GET要求輸出內容。不過,您必須移除performanceMonitoringUnit欄位,如果advancedMachineFeatures欄位中沒有其他欄位,也必須移除advancedMachineFeatures欄位。
PUT要求類似於下列要求:PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=RESTART { ~"advancedMachineFeatures": { ... }~, ... }
如要進一步瞭解如何更新運算執行個體的屬性,請參閱「更新執行個體屬性」。