本頁面說明如何使用效能監控單元 (PMU) 事件,分析 Google Kubernetes Engine (GKE) 叢集節點的 CPU 效能。
本頁內容適用於叢集管理員,他們有對效能要求嚴苛的工作負載,且想在開發、偵錯、基準化及持續監控期間,檢查 GKE 節點上工作負載的 CPU 執行情況。
事前準備
開始之前,請確認你已完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update
,取得最新版本。
需求條件和限制
啟用 PMU 事件時,請注意下列規定和限制:
- 叢集必須處於標準模式。
- 如果叢集已啟用節點自動佈建功能,透過自動佈建建立的任何節點集區都無法啟用 PMU 事件。如果您在啟用 PMU 事件後啟用節點自動佈建功能,現有節點集區不會受到影響。
- 叢集節點集區必須執行 C4 或 C4A機型。
建立 GKE 叢集
建立叢集,並為預設節點集區啟用 PMU 事件:
gcloud container clusters create CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--performance-monitoring-unit=PMU_LEVEL \
--machine-type=MACHINE_TYPE
更改下列內容:
CLUSTER_NAME
:新叢集的名稱。COMPUTE_LOCATION
:新叢集的 Compute Engine 位置。PMU_LEVEL
:要收集的 PMU 事件類型。詳情請參閱 Compute Engine 說明文件中的「PMU 的運作方式」。支援的值如下:architectural
:啟用與非最後一層快取 (LLC) 事件相關的架構 PMU 事件。standard
:包含架構事件,並啟用核心 PMU 事件,包括 L2 快取事件。enhanced
:包含標準事件,並啟用 CPU 核心和 LLC PMU 事件以外的任何本機事件。只有具備特定數量 vCPU 的 VM 才能使用這項功能。詳情請參閱 Compute Engine 說明文件中的限制。
MACHINE_TYPE
:節點的 Compute Engine 機器類型。如需支援的機器類型清單,請參閱 Compute Engine 說明文件中的限制。
您也可以使用 gcloud container node-pools create
指令,為現有叢集建立新的節點集區。
連線至叢集
設定 kubectl
與叢集通訊:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=COMPUTE_LOCATION
確認 PMU 已啟用
檢查核心訊息,確認叢集節點已啟用 PMU。
取得叢集中的節點清單:
kubectl get nodes
輸出結果會與下列內容相似:
NAME STATUS ROLES AGE VERSION gke-c1-default-pool-44be3e13-prr1 Ready <none> 5d23h v1.27.13-gke.1070000 gke-c1-default-pool-7abc4a17-9dlg Ready <none> 2d21h v1.27.13-gke.1070000 gke-c1-default-pool-ed969ef6-4gzp Ready <none> 5d v1.27.13-gke.1070000
記下其中一個節點的名稱。
取得節點的 Compute Engine 位置:
gcloud compute instances list --filter=NODE_NAME
將
NODE_NAME
替換為上一步中的節點名稱。輸出結果會與下列內容相似:
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS gke-c1-default-pool-44be3e13-prr1 us-central1-c c4-standard-4 true 10.128.0.67 34.170.44.164 RUNNING
記下 Compute Engine
ZONE
的名稱。在本例中為us-central1-c
。使用 SSH 連線至叢集節點:
gcloud compute ssh NODE_NAME \ --zone=COMPUTE_ZONE
將
COMPUTE_ZONE
替換為上一步中的 Compute Engine 可用區名稱。檢查核心訊息:
sudo dmesg |grep -A10 -i "Performance"
輸出結果會與下列內容相似:
[ 0.307634] Performance Events: generic architected perfmon, full- width counters, Intel PMU driver. # Several lines omitted
這項輸出內容表示 PMU 驅動程式已初始化。
後續步驟
- 瞭解如何 選擇最低 CPU 平台