개요
NVIDIA DCGM(Data Center GPU Manager) 은 데이터센터 환경에서 NVIDIA GPU를 관리·모니터링하기 위한 공식 도구입니다. GPU 상태 모니터링, 진단, 정책 관리, 텔레메트리 수집을 통합 제공합니다.
아키텍처
┌─────────────────────────────────────────┐
│ 사용자 / 앱 │
│ dcgmi CLI │ Python │ Go │ REST API │
└──────────────┬──────────────────────────┘
│
┌──────────────▼──────────────────────────┐
│ DCGM HostEngine │
│ (nv-hostengine 데몬, 포트 5555) │
└──────────────┬──────────────────────────┘
│
┌──────────────▼──────────────────────────┐
│ libdcgm.so │
│ (핵심 DCGM 라이브러리) │
└──────────────┬──────────────────────────┘
│
┌──────────▼──────────┐
│ NVIDIA GPU(s) │
│ (NVML / NVDIA SMI) │
└─────────────────────┘
운영 모드
모드 설명 Embedded 앱과 같은 프로세스 내 라이브러리로 동작 Standalone nv-hostengine 데몬 별도 실행, 여러 클라이언트 접속 가능
주요 컴포넌트
컴포넌트 설명 libdcgm.so C API 핵심 라이브러리 nv-hostengine 백그라운드 데몬, GPU 상태 지속 수집 dcgmi CLI 관리 도구 DCGM-Exporter Prometheus 메트릭 익스포터 (Kubernetes 연동) Python 바인딩 pydcgm — 파이썬에서 DCGM API 직접 사용Go 바인딩 DCGM-Exporter 내부 구현에 사용
주요 기능
1. GPU 헬스 모니터링
GPU별 온도·전력·클럭·메모리·에러 실시간 추적
백그라운드 헬스 체크 (수동 개입 없이 지속 감시)
이상 감지 시 알림·정책 자동 실행
2. 진단 (Diagnostics)
GPU 하드웨어 결함 탐지
수준별 진단 :
Level 1 (빠름, ~1분): 기본 상태 점검
Level 2 (~10분): 메모리 대역폭, 연산 테스트
Level 3 (~1시간): 전체 스트레스 테스트
3. 텔레메트리 수집
초당 수십 개의 GPU 메트릭 수집
잡(Job) 수준 통계 — 어떤 워크로드가 GPU를 얼마나 사용하는지
NVLink 대역폭, PCI 처리량, SM 활성화율 등 세밀한 프로파일링
4. 정책 관리
GPU 클럭·전력 상한 설정
온도 초과 시 자동 스로틀링
엔지니어링 클러스터 전체에 일관된 설정 배포
5. GPU 그룹 관리
여러 GPU를 논리적으로 그룹핑
그룹 단위 명령·모니터링 적용
주요 메트릭
활용률
메트릭 설명 단위 DCGM_FI_DEV_GPU_UTILGPU 전체 활용률 % DCGM_FI_DEV_MEM_COPY_UTIL메모리 복사 엔진 활용률 % DCGM_FI_DEV_ENC_UTIL인코더 활용률 % DCGM_FI_DEV_DEC_UTIL디코더 활용률 % DCGM_FI_PROF_GR_ENGINE_ACTIVE그래픽 엔진 활성 비율 % DCGM_FI_PROF_SM_ACTIVESM에 워프 할당된 사이클 비율 % DCGM_FI_PROF_SM_OCCUPANCYSM 점유율 (워프 수 / 최대 워프 수) %
메모리
메트릭 설명 단위 DCGM_FI_DEV_FB_USED프레임버퍼(VRAM) 사용량 MiB DCGM_FI_DEV_FB_FREE프레임버퍼 여유 용량 MiB DCGM_FI_DEV_FB_TOTAL프레임버퍼 전체 용량 MiB DCGM_FI_PROF_DRAM_ACTIVEDRAM 대역폭 활성 비율 %
온도 / 전력
메트릭 설명 단위 DCGM_FI_DEV_GPU_TEMPGPU 코어 온도 °C DCGM_FI_DEV_MEMORY_TEMP메모리 온도 °C DCGM_FI_DEV_POWER_USAGE현재 전력 소비 W DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION부팅 후 누적 에너지 mJ DCGM_FI_DEV_POWER_MGMT_LIMIT전력 제한 설정값 W
클럭
메트릭 설명 단위 DCGM_FI_DEV_SM_CLOCKSM(쉐이더) 클럭 MHz DCGM_FI_DEV_MEM_CLOCK메모리 클럭 MHz
에러 / 안정성
메트릭 설명 DCGM_FI_DEV_ECC_SBE_VOL_TOTALECC 단일 비트 에러 (수정 가능) DCGM_FI_DEV_ECC_DBE_VOL_TOTALECC 이중 비트 에러 (치명적) DCGM_FI_DEV_RETIRED_PAGES_SBESBE로 인해 은퇴된 메모리 페이지 수 DCGM_FI_DEV_XID_ERRORSXID 에러 (NVIDIA 드라이버 에러 코드)
NVLink / PCIe
메트릭 설명 DCGM_FI_DEV_NVLINK_BANDWIDTH_TOTALNVLink 전체 대역폭 DCGM_FI_PROF_NVLINK_TX_BYTESNVLink 송신 바이트 DCGM_FI_PROF_NVLINK_RX_BYTESNVLink 수신 바이트 DCGM_FI_PROF_PCIE_TX_BYTESPCIe 송신 바이트 DCGM_FI_PROF_PCIE_RX_BYTESPCIe 수신 바이트
DCGM-Exporter (Kubernetes 연동)
GPU 메트릭을 Prometheus 형식 으로 노출하는 컨테이너. Kubernetes GPU 클러스터 모니터링 표준 도구.
배포 방식
# DaemonSet으로 모든 GPU 노드에 배포
apiVersion : apps/v1
kind : DaemonSet
metadata :
name : dcgm-exporter
spec :
template :
spec :
containers :
- name : dcgm-exporter
image : nvcr.io/nvidia/k8s/dcgm-exporter:latest
ports :
- containerPort : 9400 # Prometheus 스크랩 포트
securityContext :
capabilities :
add : [ "SYS_ADMIN" ]
메트릭 엔드포인트
http://<node-ip>:9400/metrics
Prometheus + Grafana 스택
GPU 노드
└─ DCGM-Exporter (포트 9400)
│ Prometheus 스크랩
▼
Prometheus
│ 쿼리
▼
Grafana Dashboard
(NVIDIA 공식 대시보드 ID: 12239)
커스텀 메트릭 설정 (csv 파일)
# /etc/dcgm-exporter/default-counters.csv
DCGM_FI_DEV_GPU_UTIL, gauge, GPU utilization (%)
DCGM_FI_DEV_MEM_COPY_UTIL, gauge, Memory utilization (%)
DCGM_FI_DEV_FB_USED, gauge, Framebuffer memory used (MiB)
DCGM_FI_DEV_GPU_TEMP, gauge, GPU temperature (C)
DCGM_FI_DEV_POWER_USAGE, gauge, Power draw (W)
DCGM_FI_PROF_SM_ACTIVE, gauge, SM active ratio
dcgmi CLI 주요 명령어
# GPU 목록 확인
dcgmi discovery -l
# GPU 상태 요약
dcgmi group -c mygroup -a 0,1,2,3
dcgmi health -g mygroup -c
# 실시간 메트릭 모니터링
dcgmi dmon -e 203,252,1002,1003,1004 # 지정 필드만
# 진단 실행 (Level 1)
dcgmi diag -r 1
# 잡 통계 시작/종료
dcgmi stats --enable
dcgmi stats --jstart 1234 # 잡 ID 1234 시작
dcgmi stats --jstop 1234
# 정책 설정 (온도 상한 80°C)
dcgmi policy -g mygroup --set 0,0 -t 80
설치
# Ubuntu
distribution = $( . /etc/os-release ; echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/libnvidia-container/ $distribution /libnvidia-container.list | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y datacenter-gpu-manager
# 서비스 시작
sudo systemctl enable nvidia-dcgm
sudo systemctl start nvidia-dcgm
모니터링 스택 통합
도구 연동 방법 Prometheus DCGM-Exporter 스크랩 Grafana Prometheus 데이터소스 + NVIDIA 공식 대시보드 Datadog DCGM 통합 에이전트 Netdata DCGM 플러그인 IBM Spectrum LSF DCGM 네이티브 통합 Kubernetes DaemonSet + ServiceMonitor (Prometheus Operator)
관련 항목