NVIDIA 공식 + 오픈소스 기반으로 GPU 사용량 모니터링을 하는 시스템을 구성합니다. nvidia의 DCGM(DataCenter GPU Manager), Prometheus (GPU Metric 수집), Grafana (Dashboard) 구성입니다.

GPU 장비 준비

NVIDIA Container Toolkit 설치

Docker instance 내부에서 nvidia-smi 명령 수행 등 nvidia GPU 접급을 위해서는 nvidia-container-toolkit 설치가 필요합니다. 이미 Container Toolkit 이 설치되어 있다면 아래와 같이 설치한 package 정보가 보이고, 설치되어 있지 않다면 아무런 출력이 없습니다. Container Toolkit 설치를 학인했다면 DCGM 설치를 시작합니다.

AD

(참고) Installing the NVIDIA Container Toolkit

$ dpkg -l | grep nvidia-container-toolkit
nvidia-container-toolkit-base/unknown,now 1.18.1-1 amd64 [installed,automatic]
nvidia-container-toolkit/unknown,now 1.18.1-1 amd64 [installed]

nvidia Container Toolkit 설치를 위해 우선 Nvidia GPG Key를 설치합니다.

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

Container Toolkit 를 설치합니다.

$ export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.18.1-1
  sudo apt-get install -y \
      nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}

Docker 설정 파일을 수정

$ sudo nvidia-ctk runtime configure --runtime=docker
INFO[0000] Config file does not exist; using empty config
INFO[0000] Wrote updated config to /etc/docker/daemon.json
INFO[0000] It is recommended that docker daemon be restarted.

docker 서비스를 재시작.

$ sudo systemctl restart docker


DCGM 설치

nvidia DCGM 시작하기 를 참고하여 설치합니다.

  • OS: ubuntu 24.04
  • GPU: RTX 4060 Ti 8GB

1. nvidia drvier와 CUDA 버전을 확인

$ nvidia-smi -q | grep -E 'Driver Version|CUDA Version
Driver Version                            : 580.105.08
CUDA Version                              : 13.0

2. nvidia datacenter gpu manager 설치. CUDA_VERSION 환경 변수는 Major version 인 “13” 으로 지정.

$ CUDA_VERSION=13
$ sudo apt-get install --yes \
                       --install-recommends \
                       datacenter-gpu-manager-4-cuda${CUDA_VERSION}

3. 선택 사항이라고 하지만 일단 설치

sudo apt install --yes datacenter-gpu-manager-4-multinode-cuda${CUDA_VERSION}

4. 선택 사항이지만 설치.

sudo apt install --yes datacenter-gpu-manager-4-dev

DCGM 서비스 기동

1. 서비스 등록

datacenter-gpu-manager package 설치에 포함되어 있는 nvidia-dcgm를 서비스 등록합니다.

sudo systemctl --now enable nvidia-dcgm

2. 서비스 실행 확인

$ sudo systemctl status nvidia-dcgm
nvidia-dcgm.service - NVIDIA DCGM service
     Loaded: loaded (/usr/lib/systemd/system/nvidia-dcgm.service; enabled; preset: enabled)
     Active: active (running) since Thu 2025-12-11 13:18:28 KST; 5s ago
   Main PID: 1467089 (nv-hostengine)
      Tasks: 15 (limit: 38094)
     Memory: 16.6M (peak: 17.2M)
        CPU: 161ms
     CGroup: /system.slice/nvidia-dcgm.service
             └─1467089 /usr/bin/nv-hostengine -n --service-account nvidia-dcgm

Dec 11 13:18:28 AI systemd[1]: Started nvidia-dcgm.service - NVIDIA DCGM service.
Dec 11 13:18:28 AI nv-hostengine[1467089]: DCGM initialized
Dec 11 13:18:28 AI nv-hostengine[1467089]: Started host engine version 4.4.2 using port num

3. dcgmi 명령 실행 시험

$ dcgmi discovery -l
1 GPU found.
+--------+----------------------------------------------------------------------+
| GPU ID | Device Information                                                   |
+--------+----------------------------------------------------------------------+
| 0      | Name: NVIDIA GeForce RTX 4060 Ti                                     |
|        | PCI Bus ID: 00000000:01:00.0                                         |
|        | Device UUID: GPU-e57cb625-81b0-b3ec-9d6f-281b6ffdd924                |
+--------+----------------------------------------------------------------------+
0 NvSwitches found.
+-----------+
| Switch ID |
+-----------+
+-----------+
0 ConnectX found.
+----------+
| ConnectX |
+----------+
+----------+
0 CPUs found.
+--------+----------------------------------------------------------------------+
| CPU ID | Device Information                                                   |
+--------+----------------------------------------------------------------------+

dcgm-exporter

1. Docker 에서 GPU 감지 여부 확인

docker run --rm --gpus all nvidia/cuda:13.0.2-base-ubuntu24.04 nvidia-smi

아래와 같이 nvidia-smi 실행 결과가 정상 출력하면 성공이고, docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]. 오류가 발생하면 nvidia Container Toolkit 설치가 되어 있는지 다시 확인하십시오.

Status: Downloaded newer image for nvidia/cuda:13.0.2-base-ubuntu24.04
Thu Dec 11 04:31:51 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.105.08             Driver Version: 580.105.08     CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4060 Ti     On  |   00000000:01:00.0 Off |                  N/A |
|  0%   32C    P8              5W /  160W |      77MiB /   8188MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

docker-compose.yml 작성

services:
  dcgm-exporter:
    # 공식 예제에서 사용하는 NGC 이미지 (권장)
    # 필요하면 태그를 최신으로 바꿀  있음
    image: nvcr.io/nvidia/k8s/dcgm-exporter:4.4.2-4.7.1-ubuntu22.04
    container_name: dcgm-exporter
    restart: unless-stopped

    # NVIDIA Container Toolkit 사용 
    runtime: nvidia
    environment:
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=all

    cap_add:
      - SYS_ADMIN

    ports:
      - "9400:9400"   # Prometheus가 여기로 접속

    # (옵션) DCGM 설정 파일이나 카운터 CSV를 커스터마이징할 경우 볼륨 사용
    # volumes:
    #   - ./dcgm-counters.csv:/etc/dcgm-exporter/default-counters.csv

docker instance 실행 한 후, 오류가 없다면 localhost:9400 접속했을 때, GPU Exporter 를 출력합니다.

$ curl http://localhost:9400
<html>
			<head><title>GPU Exporter</title></head>
			<body>
			<h1>GPU Exporter</h1>
			<p><a href="./metrics">Metrics</a></p>
			</body>
			</html>
AD

LEAVE A REPLY

Please enter your comment!
Please enter your name here