728x90
GPU 성능 모니터링이 중요한 이유
HPC와 AI 클러스터 운영에서 GPU는 가장 고가의 핵심 자원입니다.
GPU 사용률이 낮거나 특정 Job에서 자원이 비효율적으로 쓰인다면, 전체 학습 속도가 저하되고 비용 효율이 떨어집니다.
nvidia-smi와 DCGM Exporter는 GPU 상태를 실시간으로 모니터링하고, 성능 병목을 분석·튜닝할 수 있는 필수 도구입니다.
nvidia-smi – GPU 실시간 모니터링 명령어
nvidia-smi는 NVIDIA 드라이버에 포함된 CLI 유틸리티로, GPU 상태·사용량·온도·전력 등을 확인하고 제어할 수 있습니다.
주요 기능
- GPU·메모리 사용량 확인
- 프로세스별 GPU 점유 상태
- 클럭·전력 제한 변경
- ECC 오류, 온도 등 하드웨어 상태 체크
기본 사용 예시
# GPU 전체 상태 확인
nvidia-smi
# GPU 메모리·사용률 모니터링
watch -n 1 nvidia-smi
# 특정 항목만 출력
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,memory.used --format=csv
# GPU 클럭·전력 제한 설정
sudo nvidia-smi -pl 300 # 전력 제한 300W
활용 팁
- Slurm Job Script 내부에서 Job 시작 전/후에 nvidia-smi를 실행하면 GPU 사용 패턴 비교 가능
- --loop 옵션을 사용하면 실시간 로깅 가능 (nvidia-smi dmon)
DCGM – NVIDIA Data Center GPU Manager
**DCGM(Data Center GPU Manager)**는 데이터센터 환경에서 GPU 상태를 장기적으로 모니터링하고, 정책 기반 제어를 지원하는 관리 툴입니다.
특징
- GPU 헬스 체크 자동화
- 성능/온도/전력/오류 상태 장기 수집
- Kubernetes·Slurm 등과 통합 가능
DCGM CLI 예시
# GPU 헬스 체크
dcgmi health --run diag
# GPU 상태 요약
dcgmi discovery -l
DCGM Exporter – Prometheus 연동
DCGM Exporter는 DCGM 데이터를 Prometheus 포맷으로 변환해 제공하는 Exporter입니다.
GPU 메트릭을 Grafana 대시보드에서 시각화할 수 있어, 클러스터 전체의 GPU 상태를 한눈에 파악할 수 있습니다.
설치 예시(Docker)
docker run -d --gpus all --rm \
--net=host \
nvcr.io/nvidia/k8s/dcgm-exporter:3.1.8-1-ubuntu20.04
출력 예시
# curl localhost:9400/metrics
# HELP DCGM_FI_DEV_GPU_UTIL GPU utilization
DCGM_FI_DEV_GPU_UTIL{gpu="0"} 85
Kubernetes 통합 – Helm Chart 예시
# values.yaml (nvidia-dcgm-exporter)
serviceMonitor:
enabled: true
resources:
limits:
nvidia.com/gpu: 1
- serviceMonitor.enabled를 true로 설정하면 Prometheus Operator와 자동 연동
- 각 GPU Pod에서 메트릭 수집 후 중앙 Prometheus에 저장
실시간 모니터링 대시보드 구성 예시
| 메트릭 | 설명 | 활용 |
| GPU Utilization (%) | 연산 유휴 시간 확인 | Job 병목 진단 |
| Memory Used (MiB) | VRAM 사용량 | 데이터셋/Batch Size 최적화 |
| GPU Temperature (°C) | 냉각 상태 확인 | 과열 방지 |
| Power Draw (W) | 전력 소비 | 클럭·전력 제한 조정 |
| PCIe TX/RX (MB/s) | I/O 대역폭 | 데이터 전송 병목 분석 |
성능 튜닝 포인트
- 클럭·전력 최적화
- 학습 안정성이 유지되는 범위 내에서 전력 제한을 낮춰 효율 향상
- 예: 추론 워크로드 → 전력 제한 250W 설정
- Batch Size 조정
- GPU 메모리 사용량을 기준으로 Batch Size를 조정해 Throughput 극대화
- 데이터 로딩 최적화
- GPU Utilization이 낮으면 CPU 데이터 전처리 속도나 스토리지 I/O 병목 가능성 확인
- 멀티 GPU 균형 활용
- NCCL 환경 변수로 GPU 간 부하 균등화
Slurm + DCGM Exporter 연동 예시
srun --gres=gpu:4 \
--export=ALL \
bash -c "nvidia-smi --query-gpu=uuid,utilization.gpu,memory.used --format=csv"
- Slurm Job 실행 시 GPU 상태를 메트릭으로 남기고, Prometheus Alertmanager로 임계치 초과 알림 전송 가능
산업 적용 사례
- AI 학습 파이프라인: GPU Utilization 90% 이상 유지로 비용 절감
- HPC 시뮬레이션: 장기 모니터링을 통한 하드웨어 결함 사전 감지
- 클라우드 GPU 서비스: 고객별 사용률 리포트 제공
장점과 단점
장점
- 실시간·장기 모니터링 가능
- Prometheus/Grafana와 손쉬운 통합
- 튜닝 포인트 도출 용이
단점
- DCGM Exporter 설치·통합 과정 복잡
- 잘못된 알림 설정 시 불필요한 Alert 과다 발생
- 모니터링 자체가 성능에 약간의 부하 발생 가능
정리하며
GPU 모니터링과 튜닝은 HPC/GPU 클러스터 운영에서 성능과 비용 최적화를 동시에 달성하기 위한 핵심 작업입니다.
nvidia-smi는 즉각적인 상태 확인에, DCGM Exporter는 장기적 메트릭 수집·분석에 적합합니다.
두 도구를 결합하면, 장애 예측과 성능 최적화가 가능한 운영 인텔리전스를 구축할 수 있습니다.
728x90