[Документация Yandex Cloud](../../../index.md) > [Yandex Cloud Stackland](../../index.md) > Концепции > Мониторинг кластера > Метрики дашборда NVIDIA® DCGM с MIG

# Метрики дашборда NVIDIA DCGM с поддержкой MIG

Дашборд NVIDIA DCGM с поддержкой MIG в Grafana предоставляет комплексный мониторинг графических ускорителей NVIDIA в кластере Kubernetes. Дашборд поддерживает как обычные GPU, так и GPU с технологией Multi-Instance GPU (MIG), предоставляя метрики температуры, энергопотребления, загрузки GPU, использования памяти и других важных параметров работы графических ускорителей.

Чтобы открыть дашборд:

1. Откройте Grafana.
1. В списке дашбордов выберите **NVIDIA DCGM Dashboard with MIG metrics**.

Откроется дашборд мониторинга GPU с поддержкой MIG.

## Общая информация

**Название дашборда**: NVIDIA DCGM Dashboard with MIG metrics
**UID**: `gpu-with-mig`
**Интервал обновления**: 30 секунд
**Источник данных**: Prometheus

## Переменные дашборда

Дашборд использует следующие переменные для фильтрации данных:

* **DS_PROMETHEUS** — источник данных Prometheus;
* **Hostname** — выбор конкретного хоста или всех хостов (поддерживается множественный выбор);
* **gpu** — выбор конкретного GPU ID или всех GPU (поддерживается множественный выбор);
* **mig** — выбор конкретного MIG-профиля или всех профилей (поддерживается множественный выбор).

## Панели и метрики

Дашборд разделен на несколько секций для удобства мониторинга различных аспектов работы GPU.

### Секция Aggregate

Агрегированные метрики по всем выбранным GPU и MIG-инстансам.

#### 1. GPU Engine Utilization

**Описание**: Средняя загрузка SM-ядер GPU в процентах. Показывает, насколько активно используются вычислительные ресурсы GPU.

**Метрика**: `100 * avg(DCGM_FI_PROF_GR_ENGINE_ACTIVE)`

**Единица измерения**: проценты (0-100)

**Пороговые значения**:
* Зеленый — загрузка ниже 60%;
* Желтый — загрузка от 60% до 80%;
* Оранжевый — загрузка от 80% до 90%;
* Красный — загрузка выше 90%.

#### 2. Tensor Utilization

**Описание**: Средняя загрузка тензорных ядер GPU. Тензорные ядра — специализированные вычислительные блоки для операций с матрицами, используемые в задачах машинного обучения.

**Метрика**: `100 * avg(DCGM_FI_PROF_PIPE_TENSOR_ACTIVE)`

**Единица измерения**: проценты (0-100)

**Пороговые значения**:
* Зеленый — загрузка ниже 60%;
* Желтый — загрузка от 60% до 80%;
* Оранжевый — загрузка от 80% до 90%;
* Красный — загрузка выше 90%.

**Рекомендации**: Высокая загрузка тензорных ядер характерна для задач глубокого обучения. Низкая загрузка при выполнении ML-задач может указывать на неоптимальное использование возможностей GPU.

#### 3. GPU Memory Utilization

**Описание**: Средняя загрузка памяти GPU (DRAM). Показывает интенсивность использования памяти GPU.

**Метрика**: `100 * avg(DCGM_FI_PROF_DRAM_ACTIVE)`

**Единица измерения**: проценты (0-100)

**Пороговые значения**:
* Зеленый — загрузка ниже 60%;
* Желтый — загрузка от 60% до 80%;
* Оранжевый — загрузка от 80% до 90%;
* Красный — загрузка выше 90%.

#### 4. GPU Memory Usage

**Описание**: Суммарный объем используемой видеопамяти всех GPU. Отображается как gauge с максимальным значением, равным сумме используемой и свободной памяти.

**Метрика**: `sum(DCGM_FI_DEV_FB_USED)`

**Единица измерения**: мегабайты

**Пороговые значения**:
* Зеленый — использование ниже 60%;
* Желтый — использование от 60% до 80%;
* Оранжевый — использование от 80% до 90%;
* Красный — использование выше 90%.

**Рекомендации**: Следите за использованием памяти GPU. Превышение доступного объема памяти приведет к ошибкам выполнения задач.

### Секция per GPU

Метрики для каждого GPU отдельно.

#### 5. GPU temperature

**Описание**: Температура каждого GPU в градусах Цельсия. График отображает температуру для каждого GPU отдельно.

**Метрика**: `avg by(Hostname, gpu) (DCGM_FI_DEV_GPU_TEMP)`

**Единица измерения**: градусы Цельсия

**Пороговые значения**:
* Зеленый — нормальная температура;
* Красный — температура выше 80°C.

**Рекомендации**: При превышении 80°C проверьте систему охлаждения и загрузку GPU.

#### 6. Power Usage

**Описание**: Энергопотребление каждого GPU в ваттах. График показывает текущее потребление энергии для каждого GPU.

**Метрика**: `avg by(Hostname, gpu) (DCGM_FI_DEV_POWER_USAGE)`

**Единица измерения**: ватты

#### 7. GPU Energy Draw Total

**Описание**: Суммарное потребление энергии всеми GPU за последний час и за последние 24 часа.

**Метрики**:
* `sum(increase(DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION[1h]) / 3600000)` — за последний час
* `sum(increase(DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION[24h]) / 3600000)` — за последние 24 часа

**Единица измерения**: ватт-часы

**Пороговые значения для последнего часа**:
* Зеленый — потребление ниже 5000 Вт·ч;
* Желтый — потребление от 5000 до 10 000 Вт·ч;
* Красный — потребление выше 10 000 Вт·ч.

**Пороговые значения для последних 24 часов**:
* Зеленый — потребление ниже 120 000 Вт·ч;
* Желтый — потребление от 120 000 до 150 000 Вт·ч;
* Красный — потребление выше 150 000 Вт·ч.

#### 8. SM clock

**Описание**: Частота работы потоковых мультипроцессоров (Streaming Multiprocessors) GPU.

**Метрика**: `avg by(modelName) (DCGM_FI_DEV_SM_CLOCK)`

**Единица измерения**: МГц

**Пороговые значения**:
* Зеленый — нормальная частота;
* Желтый — частота выше 1500 МГц;
* Красный — частота выше 2000 МГц.

**Описание**: SM (Streaming Multiprocessor) — основной вычислительный блок архитектуры NVIDIA GPU, выполняющий параллельные вычисления.

#### 9. Memory clock

**Описание**: Частота работы памяти GPU.

**Метрика**: `avg by(modelName) (DCGM_FI_DEV_MEM_CLOCK)`

**Единица измерения**: МГц

**Пороговые значения**:
* Зеленый — нормальная частота;
* Желтый — частота выше 1500 МГц;
* Красный — частота выше 2000 МГц.

#### 10. Memory temperature

**Описание**: Температура памяти каждого GPU в градусах Цельсия.

**Метрика**: `avg by(Hostname, gpu) (DCGM_FI_DEV_MEMORY_TEMP)`

**Единица измерения**: градусы Цельсия

**Пороговые значения**:
* Зеленый — нормальная температура;
* Красный — температура выше 80°C.

#### 11. NVLink bandwidth

**Описание**: Пропускная способность NVLink — высокоскоростного межсоединения между GPU.

**Метрика**: `avg by(Hostname, gpu) (rate(DCGM_FI_DEV_NVLINK_BANDWIDTH_TOTAL))`

**Единица измерения**: байты в секунду

**Описание**: NVLink обеспечивает высокоскоростную передачу данных между GPU, что критично для распределенных вычислений.

#### 12. Instance type

**Описание**: Круговая диаграмма, показывающая распределение типов GPU в кластере.

**Метрика**: `count by(modelName) (DCGM_FI_DEV_SM_CLOCK)`

**Описание**: Позволяет быстро оценить состав GPU-ресурсов в кластере.

### Секция per MIG profile

Метрики для каждого MIG-инстанса отдельно. MIG (Multi-Instance GPU) позволяет разделить один физический GPU на несколько изолированных инстансов.

#### 13. Memory Usage (график)

**Описание**: Использование памяти каждым MIG-инстансом в виде временного ряда.

**Метрика**: `avg by(GPU_I_ID, Hostname, gpu, GPU_I_PROFILE) (DCGM_FI_DEV_FB_USED)`

**Единица измерения**: мегабайты

**Формат легенды**: `Node:not_var{{Hostname}} GPU:not_var{{gpu}} MIG:not_var{{GPU_I_PROFILE}} ID:not_var{{GPU_I_ID}}`

#### 14. Memory Usage (bar gauge)

**Описание**: Использование памяти каждым MIG-инстансом в виде горизонтальных полос с цветовой индикацией.

**Метрика**: `avg by(GPU_I_ID, Hostname, gpu, GPU_I_PROFILE) (DCGM_FI_DEV_FB_USED)`

**Единица измерения**: мегабайты

**Особенности**:
* Для профилей с 20 ГБ памяти максимум установлен на 20 480 МБ;
* Для профилей с 10 ГБ памяти максимум установлен на 10 240 МБ.

#### 15. GPU Utilization

**Описание**: Загрузка SM-ядер каждого MIG-инстанса.

**Метрика**: `avg by(GPU_I_ID, Hostname, gpu, GPU_I_PROFILE) (DCGM_FI_PROF_GR_ENGINE_ACTIVE)`

**Единица измерения**: доля от 0 до 1 (0% до 100%)

**Формат легенды**: `Node:not_var{{Hostname}} GPU:not_var{{gpu}} MIG:not_var{{GPU_I_PROFILE}} ID:not_var{{GPU_I_ID}}`

#### 16. Tensor Utilization

**Описание**: Загрузка тензорных ядер каждого MIG-инстанса.

**Метрика**: `avg by(GPU_I_ID, Hostname, gpu, GPU_I_PROFILE) (DCGM_FI_PROF_PIPE_TENSOR_ACTIVE)`

**Единица измерения**: доля от 0 до 1 (0% до 100%)

**Формат легенды**: `Node:not_var{{Hostname}} GPU:not_var{{gpu}} MIG:not_var{{GPU_I_PROFILE}} ID:not_var{{GPU_I_ID}}`

#### 17. Memory Utilization

**Описание**: Загрузка памяти каждого MIG-инстанса.

**Метрика**: `avg by(GPU_I_ID, Hostname, gpu, GPU_I_PROFILE) (DCGM_FI_PROF_DRAM_ACTIVE)`

**Единица измерения**: доля от 0 до 1 (0% до 100%)

**Формат легенды**: `Node:not_var{{Hostname}} GPU:not_var{{gpu}} MIG:not_var{{GPU_I_PROFILE}} ID:not_var{{GPU_I_ID}}`

#### 18. Allocation Table

**Описание**: Таблица распределения MIG-инстансов по подам Kubernetes.

**Метрика**: `count by(Hostname, gpu, GPU_I_PROFILE, GPU_I_ID, exported_namespace, exported_pod) (DCGM_FI_DEV_SM_CLOCK)`

**Столбцы таблицы**:
* **Hostname** — имя хоста;
* **GPU ID** — идентификатор физического GPU;
* **MIG Profile** — профиль MIG-инстанса;
* **MIG ID** — идентификатор MIG-инстанса;
* **namespace** — пространство имен Kubernetes;
* **pod** — имя пода.

**Описание**: Позволяет отслеживать, какие поды используют какие MIG-инстансы.

### Секция Error

Метрики ошибок и проблем GPU (секция свернута по умолчанию).

#### 19. PCIe retry rate

**Описание**: Частота повторных попыток передачи данных по шине PCIe. Высокие значения могут указывать на проблемы с шиной PCIe.

**Метрика**: `avg by(Hostname, gpu) (rate(DCGM_FI_DEV_PCIE_REPLAY_COUNTER))`

**Единица измерения**: повторы в секунду

**Рекомендации**: Значительное увеличение этой метрики может указывать на проблемы с подключением GPU или шиной PCIe.

#### 20. XID error

**Описание**: Коды ошибок XID от драйвера NVIDIA. XID-ошибки указывают на различные проблемы с GPU.

**Метрика**: `avg by(Hostname, gpu) (DCGM_FI_DEV_XID_ERRORS)`

**Единица измерения**: код ошибки

**Рекомендации**: Любые ненулевые значения требуют внимания. Обратитесь к документации NVIDIA для расшифровки кодов XID.

### Секция Advanced Monitoring (GPU Efficiency & Health)

Расширенные метрики для анализа эффективности и здоровья GPU.

#### 21. GPU Utilization (Activity %)

**Описание**: Процент времени, когда GPU был активен. Сравните с Tensor Utilization, чтобы оценить эффективность выполнения ML-задач.

**Метрика**: `max by(Hostname, gpu, UUID) (DCGM_FI_DEV_GPU_UTIL)`

**Единица измерения**: проценты (0-100)

**Рекомендации**: Низкая загрузка GPU при активных задачах может указывать на узкие места в передаче данных или неоптимальный код.

#### 22. Memory Copy Utilization (Bandwidth)

**Описание**: Загрузка пропускной способности памяти. Высокая загрузка копирования памяти при низкой активности SM указывает на узкое место в передаче данных.

**Метрика**: `max by(Hostname, gpu, UUID) (DCGM_FI_DEV_MEM_COPY_UTIL)`

**Единица измерения**: проценты (0-100)

**Рекомендации**: Если эта метрика высокая, а загрузка SM низкая, возможно узкое место в передаче данных между CPU и GPU.

#### 23. GPU Memory Growth Rate (Leak Detection)

**Описание**: Скорость роста использования памяти GPU. Положительные значения указывают на постоянный рост памяти, что может свидетельствовать об утечке памяти.

**Метрика**: `rate(max by(Hostname, gpu, UUID) (DCGM_FI_DEV_FB_USED)[1h:]) * 3600`

**Единица измерения**: байты в секунду

**Пороговые значения**:
* Зеленый — рост отсутствует или отрицательный;
* Желтый — положительный рост;
* Красный — рост выше 1 МБ/с.

**Рекомендации**: Постоянный рост памяти при использовании более 80% доступной памяти указывает на риск ошибки out-of-memory.

#### 24. GPU Memory Usage % (OOM Risk)

**Описание**: Процент использования памяти GPU. Значения выше 80% с положительной скоростью роста указывают на риск ошибки out-of-memory.

**Метрика**: `100 * max by(Hostname, gpu, UUID) (DCGM_FI_DEV_FB_USED) / (max by(Hostname, gpu, UUID) (DCGM_FI_DEV_FB_USED) + max by(Hostname, gpu, UUID) (DCGM_FI_DEV_FB_FREE))`

**Единица измерения**: проценты (0-100)

**Пороговые значения** (инвертированные):
* Красный — использование ниже 70%;
* Оранжевый — использование от 70% до 80%;
* Желтый — использование от 80% до 90%;
* Зеленый — использование выше 90%.

**Рекомендации**: GPU не имеют сборки мусора — выделенная память остается выделенной до явного освобождения.

#### 25. Thermal Throttling Risk

**Описание**: Риск теплового троттлинга. GPU снижают частоту при превышении 80°C. При 85°C начинается агрессивное троттлинг, снижающее производительность на 30-50%.

**Метрика**: `max by(Hostname, gpu, UUID) (DCGM_FI_DEV_GPU_TEMP)`

**Единица измерения**: градусы Цельсия

**Пороговые значения**:
* Зеленый — температура ниже 70°C;
* Желтый — температура от 70°C до 80°C;
* Оранжевый — температура от 80°C до 85°C;
* Красный — температура выше 85°C.

**Рекомендации**: При температуре выше 85°C производительность GPU значительно снижается.

#### 26. Temperature Change Rate (°C/min)

**Описание**: Скорость изменения температуры за 5 минут. Положительные значения указывают на рост температуры — возможные проблемы с охлаждением или отказ вентилятора.

**Метрика**: `rate(max by(Hostname, gpu, UUID) (DCGM_FI_DEV_GPU_TEMP)[5m:]) * 60`

**Единица измерения**: градусы Цельсия в минуту

**Пороговые значения**:
* Зеленый — изменение ниже 0,1°C/мин;
* Красный — изменение выше 0,1°C/мин.

**Рекомендации**: Используйте вместе с метрикой Thermal Throttling Risk для диагностики проблем с охлаждением.

#### 27. GPU Efficiency Gap (Engine vs Tensor Activity)

**Описание**: Разница между загрузкой SM-ядер и тензорных ядер. Высокая загрузка GPU при низкой загрузке тензорных ядер означает, что GPU занят, но задачи ML/AI выполняются неэффективно.

**Метрика**: `100 * (max by(Hostname, gpu, UUID) (DCGM_FI_PROF_GR_ENGINE_ACTIVE) - max by(Hostname, gpu, UUID) (DCGM_FI_PROF_PIPE_TENSOR_ACTIVE))`

**Единица измерения**: проценты (0-100)

**Пороговые значения**:
* Зеленый — разница ниже 30%;
* Желтый — разница от 30% до 50%;
* Красный — разница выше 50%.

**Рекомендации**: Целевое значение — разница менее 30%. Большая разница указывает на неэффективное использование GPU для ML-задач.

#### 28. Idle/Underutilized GPU cores (<30% Utilization)

**Описание**: Таблица GPU с загрузкой ниже 30%. Эти GPU выделены, но не выполняют полезную работу — потенциальная трата ресурсов.

**Метрика**: `max by(Hostname, gpu, UUID, exported_namespace, exported_pod) (DCGM_FI_DEV_GPU_UTIL) < 30`

**Столбцы таблицы**:
* **Hostname** — имя хоста;
* **gpu** — идентификатор GPU;
* **UUID** — уникальный идентификатор GPU;
* **Namespace** — пространство имен Kubernetes;
* **Pod** — имя пода;
* **GPU Util %** — процент загрузки GPU.

**Пороговые значения для ячеек**:
* Красный — загрузка ниже 5%;
* Желтый — загрузка от 5% до 10%;
* Зеленый — загрузка выше 10%.

#### 29. Idle/Underutilized Memory (<30% Utilization)

**Описание**: Таблица GPU с использованием памяти ниже 30%. Эта память выделена, но не выполняет полезную работу — потенциальная трата ресурсов.

**Метрика**: `max by(Hostname, gpu, UUID, exported_namespace, exported_pod) (DCGM_FI_DEV_FB_USED) / (max by(Hostname, gpu, UUID, exported_namespace, exported_pod) (DCGM_FI_DEV_FB_USED) + max by(Hostname, gpu, UUID, exported_namespace, exported_pod) (DCGM_FI_DEV_FB_FREE)) * 100 < 30`

**Столбцы таблицы**:
* **Hostname** — имя хоста;
* **gpu** — идентификатор GPU;
* **UUID** — уникальный идентификатор GPU;
* **Namespace** — пространство имен Kubernetes;
* **Pod** — имя пода;
* **Memory Util %** — процент использования памяти.

**Пороговые значения для ячеек**:
* Красный — использование ниже 15%;
* Желтый — использование от 15% до 30%;
* Зеленый — использование выше 30%.

#### 30. Processes per GPU (Context Switch Risk)

**Описание**: Количество процессов на каждом GPU. Когда более 8 процессов используют один GPU через time-slicing, накладные расходы на переключение контекста обычно превышают 20%.

**Метрика**: `count by(Hostname, gpu) (DCGM_FI_DEV_GPU_UTIL{exported_pod!=""} >= 0)`

**Единица измерения**: количество процессов

**Пороговые значения**:
* Зеленый — менее 4 процессов;
* Желтый — от 4 до 6 процессов;
* Оранжевый — от 6 до 8 процессов;
* Красный — более 8 процессов.

**Рекомендации**: Высокое количество процессов указывает на конкуренцию за ресурсы GPU.

#### 31. GPU Memory Usage by Pod

**Описание**: Таблица всех подов, использующих GPU, с их фактическим потреблением памяти GPU.

**Метрика**: `max by(Hostname, gpu, UUID, exported_namespace, exported_pod, exported_container) (DCGM_FI_DEV_FB_USED{exported_pod!=""})`

**Столбцы таблицы**:
* **Hostname** — имя хоста;
* **gpu** — идентификатор GPU;
* **Namespace** — пространство имен Kubernetes;
* **Pod** — имя пода;
* **Container** — имя контейнера;
* **GPU Memory Used** — использованная память GPU в МБ.

**Описание**: Полезно для определения, какие рабочие нагрузки потребляют больше всего памяти GPU.

## Рекомендации по мониторингу

### Критические метрики

Следующие метрики требуют немедленного внимания при отклонении от нормы:

1. **Thermal Throttling Risk** — температура должна быть ниже 80°C. Превышение 85°C критично;
2. **GPU Memory Usage % (OOM Risk)** — использование памяти выше 80% с положительной скоростью роста указывает на риск ошибки out-of-memory;
3. **XID error** — любые ненулевые значения требуют внимания.

### Метрики производительности

Для оценки эффективности использования GPU обращайте внимание на:

1. **GPU Utilization (Activity %)** — загрузка GPU должна быть высокой при выполнении вычислительных задач;
2. **Tensor Utilization** — для ML-задач загрузка тензорных ядер должна быть значительной;
3. **GPU Efficiency Gap** — разница между загрузкой SM-ядер и тензорных ядер должна быть менее 30%;
4. **Memory Copy Utilization** — высокие значения при низкой загрузке SM указывают на узкое место в передаче данных.

### Метрики температуры и энергопотребления

Для контроля теплового режима и энергопотребления:

1. **GPU temperature** — температура каждого GPU должна быть в пределах нормы;
2. **Temperature Change Rate** — положительные значения указывают на проблемы с охлаждением;
3. **Power Usage** — энергопотребление должно соответствовать нагрузке;
4. **GPU Energy Draw Total** — следите за общим энергопотреблением.

### Метрики памяти

Для контроля использования видеопамяти:

1. **GPU Memory Usage** — следите за объемом используемой памяти;
2. **GPU Memory Growth Rate** — постоянный рост указывает на возможную утечку памяти;
3. **Memory Usage (per MIG profile)** — контролируйте использование памяти каждым MIG-инстансом.

### Метрики эффективности ресурсов

Для оптимизации использования GPU-ресурсов:

1. **Idle/Underutilized GPU cores** — выявляйте неиспользуемые GPU;
2. **Idle/Underutilized Memory** — выявляйте неэффективное использование памяти;
3. **Processes per GPU** — контролируйте количество процессов на GPU;
4. **GPU Memory Usage by Pod** — определяйте, какие поды потребляют больше всего ресурсов.

### Метрики MIG

Для мониторинга MIG-инстансов:

1. **Allocation Table** — отслеживайте распределение MIG-инстансов по подам;
2. **Memory Usage (per MIG profile)** — контролируйте использование памяти каждым инстансом;
3. **GPU Utilization (per MIG profile)** — оценивайте загрузку каждого MIG-инстанса;
4. **Tensor Utilization (per MIG profile)** — для ML-задач на MIG-инстансах.

## Дополнительные ресурсы

* [NVIDIA DCGM Documentation](https://docs.nvidia.com/datacenter/dcgm/latest/);
* [DCGM Exporter на GitHub](https://github.com/NVIDIA/dcgm-exporter);
* [NVIDIA MIG User Guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/);
* [NVIDIA GPU Architecture](https://www.nvidia.com/en-us/data-center/resources/);
* [Tensor Cores Documentation](https://www.nvidia.com/en-us/data-center/tensor-cores/).