HPC & GPU Engineering/Incident & Troubleshooting

DCGMI | NVIDIA DCGM을 활용한 GPU 헬스체크와 진단 가이드

ygtoken 2025. 10. 12. 19:42
728x90

 

대규모 AI 인프라나 GPU 클러스터를 운영하다 보면,

간헐적인 Xid 오류, NVLink 불안정, 온도/전력 제한(Throttling) 등의 이슈를 경험하게 됩니다.

이때 단순히 nvidia-smi만으로는 진단하기 어려운 경우가 많습니다.

 

이럴 때 바로 활용할 수 있는 강력한 툴이

**NVIDIA DCGM(Data Center GPU Manager)**의 CLI 도구인 DCGMI입니다.

 


DCGMI/DCGM 기반 GPU 헬스체크 및 모니터링 구조도

 

 

🧠 1. DCGM / DCGMI란 무엇인가?

 

DCGM (Data Center GPU Manager) 는 NVIDIA에서 제공하는 GPU 관리 프레임워크로,

데이터센터급 GPU 운영을 위한 헬스체크, 정책관리, 진단, 원격 모니터링 기능을 제공합니다.

 

DCGMI (DCGM CLI) 는 그 DCGM의 명령줄 인터페이스입니다.

GPU의 상태를 실시간으로 확인하거나, 심층 진단을 수행할 수 있습니다.

# DCGM 데몬 확인
sudo systemctl status nv-hostengine

# GPU 장치 검색
sudo dcgmi discovery -l

 


 

🧩 2. dcgmi diag — GPU 진단 기능

 

 

🔍 개요

dcgmi diag 명령은 GPU의 다양한 하드웨어 컴포넌트를 테스트하여

현재 상태를 정량적으로 진단합니다.

예를 들어 SM(Core), 메모리, PCIe, NVLink, 전력관리 등이 모두 검증 대상입니다.

 


 

💬 기본 명령어

sudo dcgmi diag -r 3

옵션 -r진단 레벨(run-level) 을 의미합니다.

레벨이 높을수록 테스트가 더 깊고 오래 진행됩니다.

 

Level 이름 설명 권장 상황
1 Quick 기본 체크 (초기 확인용) GPU 설치 직후
2 Short 주요 기능 점검 간단한 장애 재현 시
3 Medium 중간 수준 기능 검증 Xid 발생 시 일반적으로 사용
4 Long 심층 진단 (시간 소요 큼) 안정성 테스트
5 Extended 모든 기능 + 스트레스 테스트 제조/벤치마크 수준 검증

 


 

🧪 예시 출력

Diagnostic results for GPU 0
  Test 1: SM Stress Test     PASS
  Test 2: Memory Test        PASS
  Test 3: PCIe Bandwidth     PASS
  Test 4: NVLink LinkTest    FAIL (Link 0 degraded)

 

🔎 해석:

  • 모든 항목이 PASS라면 하드웨어 동작이 정상입니다.
  • FAIL이 나온다면, 해당 GPU에서 링크 단절이나 ECC 에러가 발생했을 가능성이 있습니다.
  • NVLink 관련 실패는 nvidia-smi -q -d NVLINK로 추가 확인합니다.

 


 

⚠️ 주의사항

  • diag -r 3 이상은 GPU 부하가 높아지므로, 학습 중인 노드에서 실행하지 마세요.
  • 테스트는 GPU를 잠시 점유하므로, 오프라인 진단 시 권장됩니다.

 


 

💡 3. dcgmi health — 실시간 헬스체크

dcgmi health는 현재 GPU 상태를 PASS/WARNING/FAIL 형태로 출력합니다.

온도, 전력 제한, ECC, NVLink 등 핵심 상태를 빠르게 확인할 수 있습니다.

 


💬 명령어 예시

sudo dcgmi health
sudo dcgmi health -d 0

 


 

🧾 예시 출력

Health Monitor Report
  GPU 0: PASS
  GPU 1: WARNING (Power limit throttling)
  GPU 2: FAIL (ECC errors detected)

🔎 해석:

  • PASS: 모든 모듈이 정상 동작
  • WARNING: 일시적 제약 (온도 상승, 전력 제한 등)
  • FAIL: ECC/Memory 등 심각한 하드웨어 오류

 


 

🧠 운영 팁

  • 주기적 헬스체크 자동화
# /usr/local/bin/check_gpu_health.sh
#!/bin/bash
LOG="/var/log/dcgmi_health_$(date +%Y%m%d).log"
sudo dcgmi health > $LOG
grep "FAIL" $LOG && echo "GPU FAIL DETECTED" | mail -s "GPU Alert" ops@example.com

 

  • Systemd Timer로 매일 자동 실행 가능

 


 

📊 4. DCGM Exporter와 통합하기

 

CLI 기반 점검은 일회성이지만,

상시 모니터링을 원한다면 DCGM Exporter를 Prometheus와 연동할 수 있습니다.

 


 

⚙️ 주요 Metric 예시

Metric 이름 설명
DCGM_FI_DEV_GPU_TEMP GPU 온도
DCGM_FI_DEV_POWER_USAGE 전력 사용량
DCGM_FI_DEV_ECC_DBE_AGG_TOTAL ECC 더블비트 에러
DCGM_FI_DEV_NVLINK_BANDWIDTH_TOTAL NVLink 대역폭

이 데이터를 Prometheus에서 수집하고,

Grafana에서 GPU별 헬스 및 NVLink 상태를 시각화할 수 있습니다.

 


 

🧰 5. 운영 환경에서의 실제 활용 시나리오

 

🔹 GPU 노드 초기 점검

sudo dcgmi discovery -l
sudo dcgmi diag -r 1
sudo dcgmi health

 

🔹 장애 발생 시 (예: Xid 45, 79, 145 등)

sudo dcgmi diag -r 3
sudo dcgmi health -d 5
sudo nvidia-smi -q -d NVLINK

 

🔹 진단 후 조치

  • NVLink 오류 → 링크 리셋 또는 케이블 재체결
  • ECC 오류 → GPU 리셋(nvidia-smi --gpu-reset -i N)
  • 지속적 오류 → GPU 교체 또는 펌웨어 점검

 


 

🧾 6. 요약 정리

명령 설명 활용 목적
dcgmi discovery -l GPU 장치 목록 장비 인식 확인
dcgmi health 헬스체크 실시간 상태 확인
dcgmi diag -r 3 중간 수준 진단 장애 발생 시 검증
dcgmi policy --set 정책 기반 감시 오류 감지 자동화
dcgm-exporter Prometheus 연동 장기 모니터링

 


 

🧭 7. 결론

 

dcgmi는 단순한 명령줄 툴이 아닙니다.

이는 GPU 클러스터 운영자의 조기 경보 시스템이며,

Xid 에러나 NVLink 불안정 같은 하드웨어 레벨 문제를 진단하는 첫 단계입니다.

 

✅ 정리하자면:

 

  • 빠른 점검: sudo dcgmi health
  • 심층 진단: sudo dcgmi diag -r 3
  • 모니터링 자동화: dcgm-exporter + Prometheus

 

728x90