本页面介绍如何使用性能监控单元 (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 事件时,请注意以下要求和限制:
- 您的集群必须处于 Standard 模式。
- 如果您的集群启用了节点自动预配,则通过自动预配创建的任何节点池都无法启用 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 的虚拟机。如需了解详情,请参阅 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 平台