Метрики дашборда NVIDIA DCGM с поддержкой MIG
Дашборд NVIDIA DCGM с поддержкой MIG в Grafana предоставляет комплексный мониторинг графических ускорителей NVIDIA в кластере Kubernetes. Дашборд поддерживает как обычные GPU, так и GPU с технологией Multi-Instance GPU (MIG), предоставляя метрики температуры, энергопотребления, загрузки GPU, использования памяти и других важных параметров работы графических ускорителей.
Чтобы открыть дашборд:
- Откройте Grafana.
- В списке дашбордов выберите 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:{{Hostname}} GPU:{{gpu}} MIG:{{GPU_I_PROFILE}} ID:{{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:{{Hostname}} GPU:{{gpu}} MIG:{{GPU_I_PROFILE}} ID:{{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:{{Hostname}} GPU:{{gpu}} MIG:{{GPU_I_PROFILE}} ID:{{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:{{Hostname}} GPU:{{gpu}} MIG:{{GPU_I_PROFILE}} ID:{{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.
Рекомендации по мониторингу
Критические метрики
Следующие метрики требуют немедленного внимания при отклонении от нормы:
- Thermal Throttling Risk — температура должна быть ниже 80°C. Превышение 85°C критично;
- GPU Memory Usage % (OOM Risk) — использование памяти выше 80% с положительной скоростью роста указывает на риск ошибки out-of-memory;
- XID error — любые ненулевые значения требуют внимания.
Метрики производительности
Для оценки эффективности использования GPU обращайте внимание на:
- GPU Utilization (Activity %) — загрузка GPU должна быть высокой при выполнении вычислительных задач;
- Tensor Utilization — для ML-задач загрузка тензорных ядер должна быть значительной;
- GPU Efficiency Gap — разница между загрузкой SM-ядер и тензорных ядер должна быть менее 30%;
- Memory Copy Utilization — высокие значения при низкой загрузке SM указывают на узкое место в передаче данных.
Метрики температуры и энергопотребления
Для контроля теплового режима и энергопотребления:
- GPU temperature — температура каждого GPU должна быть в пределах нормы;
- Temperature Change Rate — положительные значения указывают на проблемы с охлаждением;
- Power Usage — энергопотребление должно соответствовать нагрузке;
- GPU Energy Draw Total — следите за общим энергопотреблением.
Метрики памяти
Для контроля использования видеопамяти:
- GPU Memory Usage — следите за объемом используемой памяти;
- GPU Memory Growth Rate — постоянный рост указывает на возможную утечку памяти;
- Memory Usage (per MIG profile) — контролируйте использование памяти каждым MIG-инстансом.
Метрики эффективности ресурсов
Для оптимизации использования GPU-ресурсов:
- Idle/Underutilized GPU cores — выявляйте неиспользуемые GPU;
- Idle/Underutilized Memory — выявляйте неэффективное использование памяти;
- Processes per GPU — контролируйте количество процессов на GPU;
- GPU Memory Usage by Pod — определяйте, какие поды потребляют больше всего ресурсов.
Метрики MIG
Для мониторинга MIG-инстансов:
- Allocation Table — отслеживайте распределение MIG-инстансов по подам;
- Memory Usage (per MIG profile) — контролируйте использование памяти каждым инстансом;
- GPU Utilization (per MIG profile) — оценивайте загрузку каждого MIG-инстанса;
- Tensor Utilization (per MIG profile) — для ML-задач на MIG-инстансах.