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

# Метрики дашборда NVIDIA DCGM без MIG

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

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

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

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

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

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

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

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

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

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

### Раздел Aggregate

Раздел содержит агрегированные метрики по всем выбранным GPU.

#### 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). Показывает активность обращений к видеопамяти.

**Метрика**: `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)` — используемая память;
* `sum(DCGM_FI_DEV_FB_USED) + sum(DCGM_FI_DEV_FB_FREE)` — общий объем памяти.

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

**Пороговые значения**:
* Зеленый — использование ниже 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.

#### 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 часа.

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

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

#### 8. SM clock

**Описание**: Средняя частота работы потоковых мультипроцессоров (Streaming Multiprocessors) GPU. SM — основной вычислительный блок архитектуры NVIDIA GPU.

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

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

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

#### 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. Показывает скорость передачи данных между GPU.

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

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

#### 12. Instance type

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

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

### Раздел Error

Раздел содержит метрики ошибок и проблем GPU (по умолчанию свернут).

#### 13. PCIe retry rate

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

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

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

#### 14. XID error

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

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

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

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

### Раздел Advanced Monitoring (GPU Efficiency & Health)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

**Метрика**: `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%.

#### 19. 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.

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

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

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

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

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

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

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

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

**Метрика**: `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%.

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

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

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

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

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

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

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

#### 23. 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`

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

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

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

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

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

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

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

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

#### 25. GPU Memory Usage by Pod

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

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

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

**Рекомендации**: Используйте эту таблицу для анализа распределения памяти между подами и выявления подов с аномально высоким потреблением памяти.

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

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

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

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

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

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

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

### Метрики оптимизации ресурсов

Для выявления неэффективного использования ресурсов:

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

### Метрики здоровья GPU

Для контроля состояния оборудования:

1. **GPU temperature** и **Memory temperature** — температура должна быть в пределах нормы;
2. **Power Usage** — энергопотребление должно соответствовать нагрузке;
3. **PCIe retry rate** — высокие значения указывают на проблемы с шиной PCIe;
4. **GPU Memory Growth Rate** — постоянный рост указывает на утечки памяти.

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

* [NVIDIA DCGM Documentation](https://docs.nvidia.com/datacenter/dcgm/latest/);
* [DCGM Exporter на GitHub](https://github.com/NVIDIA/dcgm-exporter);
* [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/).