이 페이지에서는 성능 모니터링 장치 (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
: 아키텍처 이벤트를 포함하고 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 플랫폼을 선택하는 방법 알아보기