このページでは、Performance Monitoring Unit(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
: アーキテクチャ イベントが含まれ、L2 キャッシュ イベントなどのコア PMU イベントが有効になります。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 プラットフォームを選択する方法を確認する