Зачем это нужно
Inference на GPU — дорого и узко. CPU at 40% при GPU OOM или queue depth 500 — разные проблемы. GPU metrics (NVIDIA DCGM) и ML runtime (TorchServe, Triton, custom batching) дают USE-сигналы для capacity planning и incident response.
Без GPU observability команда либо переплачивает за простаивающие карты, либо ловит timeout при скрытой saturation.
Основные идеи
NVIDIA DCGM (Data Center GPU Manager).
Exporter
dcgm-exporterв DaemonSet на GPU nodes.Метрики в Prometheus format.
Ключевые DCGM метрики.
| Метрика | Смысл |
|---|---|
DCGM_FI_DEV_GPU_UTIL |
SM utilization % |
DCGM_FI_DEV_MEM_COPY_UTIL |
Memory interface busy |
DCGM_FI_DEV_FB_USED / FREE |
GPU memory |
DCGM_FI_DEV_POWER_USAGE |
Watts — thermal/power cap |
DCGM_FI_DEV_XID_ERRORS |
Hardware/driver errors |
DCGM_FI_DEV_GPU_TEMP |
Throttling risk |
Utilization vs memory. GPU util 30% но memory 95% — large model, small batch; util 95% memory 50% — compute bound, можно batching.
MIG (Multi-Instance GPU). На A100/H100 — fractional GPU; labels gpu, GPU_I_ID для instance-level dashboards.
ML runtime metrics (application level).
Beyond DCGM, serving framework exposes:
Queue depth — requests waiting for batch.
Batch size — actual dynamic batching.
Inference time — forward pass only (vs total RED duration).
Model load time — cold start for readiness tuning.
Examples: Triton nv_inference_queue_duration_us, TorchServe custom counters.
Kubernetes + GPU.
resources.limits.nvidia.com/gpu: 1— scheduling.HPA on CPU не работает для GPU-bound — custom metrics: queue length, GPU util (via Prometheus adapter).
Device plugin failures — pods Pending; monitor kubelet logs.
Train vs inference.
Train (Argo WF): track GPU util over job; low util → data loader bottleneck.
Inference: track p95 vs batch size tradeoff.
Cost observability. GPU-seconds per model version × tariff — FinOps dashboard (advanced); DCGM power × time proxy.
Как это выглядит на практике
Grafana row «GPU — churn-serving nodes»:
Heatmap GPU util by pod over 24h.
Alert:
DCGM_FI_DEV_FB_USED / (USED+FREE) > 0.92for 10m → risk OOM.Alert:
DCGM_FI_DEV_XID_ERRORSincrease → cordon node, drain.
Inference deployment:
resources: limits: nvidia.com/gpu: 1 readinessProbe: httpGet: path: /v1/models/churn/ready port: 8080 initialDelaySeconds: 60 # model load on GPU
Compare dashboards:
RED p95 spike + GPU util low → problem outside GPU (network, feature store).
RED p95 spike + queue depth high + GPU util 99% → need more replicas or bigger batch timeout tuning.
Nightly train Workflow: post-job report average GPU util; if < 40%, increase num_workers in DataLoader.
Что сделать после занятия
Список 5 DCGM метрик, которые вы бы добавили на dashboard inference.
Объясните разницу между высоким GPU memory и высоким GPU util.
Проверьте readiness probe: учитывает ли время загрузки модели на GPU.