GKE가 NVIDIA Data Center GPU Manager(DCGM) 측정항목을 Cloud Monitoring으로 전송하도록 구성하여 GPU 사용률, 성능, 상태를 모니터링할 수 있습니다.
DCGM 측정항목을 사용 설정하면 GKE는 DCGM-Exporter 도구와 Google 관리 GPU 드라이버를 설치하고 ClusterPodMonitoring 리소스를 배포하여 측정항목을 Google Cloud Managed Service for Prometheus로 전송합니다.
DCGM 측정항목 집합을 맞춤설정하거나 관리형 DCGM 측정항목의 요구사항을 충족하지 않는 클러스터가 있는 경우 자체 관리형 DCGM을 구성할 수도 있습니다.
DCGM 소개
DCGM, 즉 NVIDIA의 Data Center GPU Manager는 NVIDIA GPU를 관리하고 모니터링할 수 있는 NVIDIA의 도구 모음입니다. DCGM은 GPU 사용률, 성능, 상태를 종합적으로 보여줍니다.
- GPU 사용률 측정항목은 모니터링되는 GPU의 사용 수준과 GPU가 작업 처리에 효과적으로 사용되는지를 나타냅니다. 여기에는 핵심 처리, 메모리, I/O, 전력 사용량 관련 측정항목이 포함됩니다.
- GPU 성능 측정항목은 GPU가 계산 태스크를 얼마나 효과적이고 효율적으로 수행할 수 있는지를 나타냅니다. 여기에는 클럭 속도 및 온도 측정항목이 포함됩니다.
- NVlink 및 PCIe와 같은 GPU I/O 측정항목은 데이터 전송 대역폭을 측정합니다.
시작하기 전에
시작하기 전에 다음 태스크를 수행했는지 확인합니다.
- Google Kubernetes Engine API를 사용 설정합니다. Google Kubernetes Engine API 사용 설정
- 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치한 경우
gcloud components update
를 실행하여 최신 버전을 가져옵니다.
NVIDIA Data Center GPU Manager(DCGM) 측정항목 요구사항
NVIDIA Data Center GPU Manager(DCGM) 측정항목을 수집하려면 GKE 클러스터가 다음 요구사항을 충족해야 합니다.
- GKE 버전 1.30.1-gke.1204000 이상
- 시스템 측정항목 수집을 사용 설정해야 합니다.
- Google Cloud Managed Service for Prometheus 관리형 수집이 사용 설정되어 있어야 합니다.
- 노드 풀이 GKE 관리형 GPU 드라이버를 실행 중이어야 합니다. 즉,
--gpu-driver-version
의 경우default
또는latest
를 사용하여 노드 풀을 만들어야 합니다. - 프로파일링 측정항목은 NVIDIA H100 80GB GPU에 대해서만 수집됩니다.
DCGM 측정항목 수집 구성
Google Cloud 콘솔, gcloud CLI 또는 Terraform을 사용하여 GKE가 기존 클러스터의 DCGM 측정항목을 수집하도록 할 수 있습니다.
콘솔
-
GPU 드라이버 설치에는 기본값 또는 최신을 사용해야 합니다.
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
클러스터 이름을 클릭합니다.
Cloud Monitoring 옆에 있는 edit을 클릭합니다.
SYSTEM
과DCGM
을 선택합니다.저장을 클릭합니다.
gcloud
GPU 노드 풀을 만듭니다.
--gpu-driver-version
에는default
또는latest
를 사용해야 합니다.클러스터를 업데이트합니다.
gcloud container clusters update CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --enable-managed-prometheus \ --monitoring=SYSTEM,DCGM
다음을 바꿉니다.
CLUSTER_NAME
: 기존 클러스터의 이름입니다.COMPUTE_LOCATION
: 클러스터의 Compute Engine 위치입니다.
Terraform
Terraform을 사용하여 DCGM 측정항목 수집을 구성하려면 google_container_cluster
용 Terraform 레지스트리에서 monitoring_config
블록을 참조하세요.
Terraform과 함께 Google Cloud를 사용하는 방법에 대한 일반적인 내용은 Google Cloud에서 Terraform을 참조하세요.
DCGM 측정항목 사용
Google Cloud 콘솔의 대시보드를 사용하거나 클러스터 개요 및 클러스터 세부정보 페이지에서 직접 DCGM 측정항목을 볼 수 있습니다. 자세한 내용은 관측 가능성 측정항목 보기를 참조하세요.
Grafana DCGM 측정항목 대시보드를 사용하여 측정항목을 볼 수 있습니다. 자세한 내용은 Grafana를 사용하여 쿼리를 참조하세요. 오류가 발생하면 API 호환성을 참조하세요.
가격 책정
DCGM 측정항목은 Google Cloud Managed Service for Prometheus를 사용하여 측정항목을 Cloud Monitoring에 로드합니다. Cloud Monitoring은 수집된 샘플의 수를 기준으로 이러한 측정항목의 수집에 대한 요금을 청구합니다. 하지만 이러한 측정항목은 GKE Enterprise 버전이 사용 설정된 프로젝트에 속한 등록된 클러스터에 대해 무료로 제공됩니다.
자세한 내용은 Cloud Monitoring 가격 책정을 참조하세요.
할당량
DCGM 측정항목은 Cloud Monitoring API의 분당 시계열 수집 요청 할당량을 사용합니다. 측정항목 패키지를 사용 설정하기 전에 해당 할당량의 최근 최고 사용량을 확인하세요. 동일한 프로젝트에 클러스터가 많거나 이미 할당량 한도에 도달한 경우 관측 가능성 패키지를 사용 설정하기 전에 할당량 한도 상향 조정을 요청할 수 있습니다.
DCGM 측정항목
이 테이블의 Cloud Monitoring 측정항목 이름에는 prometheus.googleapis.com/
프리픽스를 붙여야 합니다. 테이블의 항목에서는 이 프리픽스가 생략되었습니다.
prometheus_target
모니터링 리소스의 라벨과 함께 GKE에서 수집된 모든 DCGM 측정항목에는 다음 라벨이 연결됩니다.
GPU 라벨:
UUID
: GPU 기기 UUIDdevice
: GPU 기기 이름-
gpu
: 노드에 있는 GPU 기기의 색인 번호(정수). 예를 들어 GPU가 8개 연결되어 있으면 이 값의 범위는0
~7
입니다. modelName
: GPU 기기 모델의 이름(예:NVIDIA L4
)
Kubernetes 라벨:
container
: GPU 기기를 사용하는 Kubernetes 컨테이너의 이름-
namespace
: GPU 기기를 사용하는 포드 및 컨테이너의 Kubernetes 네임스페이스 pod
: GPU 기기를 사용하는 Kubernetes 포드
PromQL 측정항목 이름 Cloud Monitoring 측정항목 이름 |
|
---|---|
종류, 유형, 단위
모니터링 리소스 필수 GKE 버전 |
설명 |
DCGM_FI_DEV_FB_FREE DCGM_FI_DEV_FB_FREE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
사용 가능한 프레임 버퍼(MB)입니다. |
DCGM_FI_DEV_FB_TOTAL DCGM_FI_DEV_FB_TOTAL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
GPU의 총 프레임 버퍼(MB)입니다. |
DCGM_FI_DEV_FB_USED DCGM_FI_DEV_FB_USED/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
사용된 프레임 버퍼(MB)입니다. |
DCGM_FI_DEV_GPU_TEMP DCGM_FI_DEV_GPU_TEMP/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
기기의 현재 온도 판독값(°C)입니다. |
DCGM_FI_DEV_GPU_UTIL DCGM_FI_DEV_GPU_UTIL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
GPU 사용률(%)입니다. |
DCGM_FI_DEV_MEM_COPY_UTIL DCGM_FI_DEV_MEM_COPY_UTIL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
메모리 사용률(%)입니다. |
DCGM_FI_DEV_MEMORY_TEMP DCGM_FI_DEV_MEMORY_TEMP/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
기기의 메모리 온도(°C)입니다. |
DCGM_FI_DEV_POWER_USAGE DCGM_FI_DEV_POWER_USAGE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
기기의 전원 사용량(와트)입니다. |
DCGM_FI_DEV_SM_CLOCK DCGM_FI_DEV_SM_CLOCK/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
SM 클럭 주파수(MHz)입니다. |
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION/counter |
|
CUMULATIVE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
드라이버가 마지막으로 새로고침된 이후 GPU의 총 에너지 소비량(mJ)입니다. |
DCGM_FI_PROF_DRAM_ACTIVE DCGM_FI_PROF_DRAM_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
기기 메모리 인터페이스가 데이터를 송수신하는 활성 상태인 주기의 비율입니다. |
DCGM_FI_PROF_GR_ENGINE_ACTIVE DCGM_FI_PROF_GR_ENGINE_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
그래픽 엔진이 활성 상태인 시간의 비율입니다. |
DCGM_FI_PROF_NVLINK_RX_BYTES DCGM_FI_PROF_NVLINK_RX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
헤더와 페이로드를 모두 포함한 활성 NvLink rx(읽기) 데이터의 비율(바이트)입니다. |
DCGM_FI_PROF_NVLINK_TX_BYTES DCGM_FI_PROF_NVLINK_TX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
헤더와 페이로드를 모두 포함한 활성 NvLink tx(전송) 데이터의 비율(바이트)입니다. |
DCGM_FI_PROF_PCIE_RX_BYTES DCGM_FI_PROF_PCIE_RX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
헤더와 페이로드를 모두 포함한 활성 PCIe rx(읽기) 데이터의 비율(바이트)입니다. |
DCGM_FI_PROF_PCIE_TX_BYTES DCGM_FI_PROF_PCIE_TX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
헤더와 페이로드를 모두 포함한 활성 PCIe tx(전송) 데이터의 비율(바이트)입니다. |
DCGM_FI_PROF_PIPE_FP16_ACTIVE DCGM_FI_PROF_PIPE_FP16_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
fp16 파이프가 활성 상태인 주기의 비율입니다. |
DCGM_FI_PROF_PIPE_FP32_ACTIVE DCGM_FI_PROF_PIPE_FP32_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
fp32 파이프가 활성 상태인 주기의 비율입니다. |
DCGM_FI_PROF_PIPE_FP64_ACTIVE DCGM_FI_PROF_PIPE_FP64_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
fp64 파이프가 활성 상태인 주기의 비율입니다. |
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE DCGM_FI_PROF_PIPE_TENSOR_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
텐서 파이프가 활성 상태인 주기의 비율입니다. |
DCGM_FI_PROF_SM_ACTIVE DCGM_FI_PROF_SM_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
SM에 할당된 워프가 1개 이상인 주기의 비율입니다. |
다음 단계
- 관측 가능성 측정항목 보기 방법 알아보기