Open1

Grafana, Prometheus, node-exporter, GPU

ManabuIshiiManabuIshii

これで十分かわからないが、とりあえず

dcgm-exporterとnode-exporterの確認

すでに起動しているかをみてみる、

その1
ss -natp | grep LISTEN

9100 (node-exporter)
9400 (dcgm-exporter)

その2、いかのどれかでプロセスがうごいていれば、いけるかもしれない。
ps aux | grep node
ps aux | grep dcgm
ps aux | grep exporter

stress,dstat をインストール、grafana確認用

apt-get install stress dstat

CPU に負荷

112コアあるので、いかのようにして、だいたい50%くらいつかわれることを確認した。

stress -c 50

メモリに負荷

2TB積んでいるようだったので、

stress -m 1 --vm-bytes 512G --vm-hang 0 -v

ディスクに負荷

stress -d 56

上のコマンドだとわかりにくかったので、
以下で計測

/dev/nvme0n1
は、不調なようだったので、実行していない

sudo hdparm  -tT /dev/nvme1n1
sudo hdparm  -tT /dev/nvme2n1
sudo hdparm  -tT /dev/nvme3n1

gpu負荷テストdockerをつかう

https://github.com/wilicc/gpu-burn

git clone https://github.com/wilicc/gpu-burn
cd gpu-burn
docker build -t gpu_burn .
docker run --rm --gpus all gpu_burn

その後以下の方法で計測をした。

make
./gpu_burn -i 2 60
./gpu_burn -i 6 60

grafanaとprometheus

そもそも参考にしたページ
https://blog.jp.square-enix.com/iteng-blog/posts/00071-o11y-gpu/

docker-compose.yamlで、dcgm-exporterのバージョンを更新している

mkdir grafana
cd grafana
mkdir grafana-data
chmod 777 grafana-data
mkdir prom-data
chmod 777 prom-data

docker-compose.yaml

同じマシンにgrafanaがもともとあったので、3001でうけるように変更した。
prometheusも同様の理由で9091に変更した。

version: "3.7"

services:

  #dcgm-exporter:
  #  image: nvcr.io/nvidia/k8s/dcgm-exporter:3.3.6-3.4.2-ubuntu22.04
  #  ports:
  #  - "9400:9400"
  #  cap_add:
  #  - SYS_ADMIN
  #  deploy:
  #    resources:
  #      reservations:
  #        devices:
  #          - driver: nvidia
  #            count: 8
  #            capabilities: [gpu]

  #node-exporter:
  #  image: prom/node-exporter
  #  ports:
  #  - "9100:9100"

  prometheus:
    image: prom/prometheus
    command:
      - '--config.file=/prometheus-data/prometheus.yaml'
      - '--storage.tsdb.path=/prometheus-data'
      - '--storage.tsdb.retention.time=3y' ### to save data 3years
    ports:
    - "9091:9090"
    volumes:
    - ./prom-data:/prometheus-data

  grafana:
    image: grafana/grafana
    ports:
    #- "3000:3000"
    - "3001:3000"
    volumes:
    - ./grafana-data:/var/lib/grafana

prom-data/prometheus.yaml

global:
  scrape_interval: 10s
  evaluation_interval: 10s

scrape_configs:
  - job_name: 'dcgm'
    static_configs:
      - targets:
        - xxx.xxx.xxx.xxx:9400
        - xxx.xxx.xxx.xxx:9100

nvidia

Nvidia Fabric Managerがきいていることの確認

nvidia-smi -q -i 0 | grep -i -A 2 Fabric

$ nvidia-smi -q -i 0 | grep -i -A 2 Fabric
    Fabric
        State                             : Completed
        Status                            : Success

nvidia-smiの結果

$ nvidia-smi
Sun Jun 16 07:52:12 2024       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 555.42.02              Driver Version: 555.42.02      CUDA Version: 12.5     |
|-----------------------------------------+------------------------+----------------------+
| 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 H100 80GB HBM3          On  |   00000000:18:00.0 Off |                    0 |
| N/A   26C    P0             68W /  700W |       1MiB /  81559MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   1  NVIDIA H100 80GB HBM3          On  |   00000000:2A:00.0 Off |                    0 |
| N/A   26C    P0             70W /  700W |       1MiB /  81559MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   2  NVIDIA H100 80GB HBM3          On  |   00000000:3A:00.0 Off |                    0 |
| N/A   28C    P0             68W /  700W |       1MiB /  81559MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   3  NVIDIA H100 80GB HBM3          On  |   00000000:5D:00.0 Off |                    0 |
| N/A   25C    P0             70W /  700W |       1MiB /  81559MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   4  NVIDIA H100 80GB HBM3          On  |   00000000:9A:00.0 Off |                    0 |
| N/A   28C    P0             69W /  700W |       1MiB /  81559MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   5  NVIDIA H100 80GB HBM3          On  |   00000000:AB:00.0 Off |                    0 |
| N/A   28C    P0             69W /  700W |       1MiB /  81559MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   6  NVIDIA H100 80GB HBM3          On  |   00000000:BA:00.0 Off |                    0 |
| N/A   26C    P0             69W /  700W |       1MiB /  81559MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   7  NVIDIA H100 80GB HBM3          On  |   00000000:DB:00.0 Off |                    0 |
| N/A   25C    P0             70W /  700W |       1MiB /  81559MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+
$ 

nvccの確認、あるかないか

入れてない可能性があるが、バージョン確認

$ nvcc -V
Command 'nvcc' not found, but can be installed with:
sudo apt install nvidia-cuda-toolkit
$ 

node-exporter はすでにはいっていた

node-exporter 設定変更箇所

node-exporter

systemctl配下だったので、statusなどで動作を確認した

sudo systemctl status node-exporter
sudo systemctl stop node-exporter
sudo systemctl status node-exporter
sudo systemctl start node-exporter
sudo systemctl status node-exporter

/etc/default/node-exporter

globalから受けられるようにした

xxx.xxx.xxx.xxx

ARGS="--web.listen-address=xxx.xxx.xxx.xxx:9100 --web.listen-address=xxx.xxx.xxx.xxx:9100 --collector.systemd --log.format=json --collector.textfile.directory=/opt/node_exporter/textfile"

以前のメモ

仮想マシン自体のCPU、メモリ、ネットワークなどを監視する

参考

Prometheus×Node Exporter×Grafanaでサーバー監視ダッシュボードを構築する

GrafanaのDashboardはこれが使用されている数がおおいのでまずはこれをいれてみる
Node Exporter Full | Grafana Labs

node-exporter自体
GitHub - prometheus/node_exporter: Exporter for machine metrics

Prometheus

singularity pull docker://prom/prometheus
singularity run -B ./prom-data:/prometheus-data prometheus_latest.sif --config.file=/prometheus-data/prometheus.yaml --storage.tsdb.retention.time=3y

Node exporter

singularity pull docker://prom/node-exporter
singularity run node-exporter_latest.sif

DCGM exporter

singularity pull docker://nvcr.io/nvidia/k8s/dcgm-exporter:3.3.6-3.4.2-ubuntu22.04
singularity run --nv dcgm-exporter_3.3.6-3.4.2-ubuntu22.04.sif

Grafana

singularity pull docker://grafana/grafana
singularity run -B ./grafana-data:/var/lib/grafana docker://grafana/grafana

dashboardのimport

12239
1860