Сервис мониторинга позволяет получать информацию о производительности ресурсов в Distributed Train.
Во время использования Distributed Train автоматически собираются метрики состояния и потребления ресурсов, связанные с пользовательской нагрузкой. Эти данные передаются в Сервис Мониторинга и отображаются на сервисных и пользовательских дашбордах. Также метрики мониторинга доступны через API для интеграции с внешними системами.
Метрики бывают двух типов:
Счетчики (counter) — отображают значение нарастающим итогом. Значение сбрасывается при перезапуске Jupyter Servers. Обычно к таким метрикам применяются функции rate()/increase().
Текущие значения/измерения (gauge) — отображают текущие измерения, зафиксированные для определенного компонента. Обычно к ним применяют агрегирующие функции sum(), avg().
Метрики, которые предоставляет Distributed Train, имеют единый префикс mls_. Они поступают с подов в разрезе контейнеров.
Если вы используете GPU, будут доступны метрики, собираемые утилитой dcgm_exporter.
Задачи обучения и Jupyter Servers имеют разную схему развертывания на вычислительных узлах (pod):
Задачи обучения запускаются как заданное количество реплик с одним управляющим узлом (master). Реплика содержит один запускаемый контейнер.
Jupyter Servers запускается на одном узле. Количество контейнеров определяется источником образа. Пользовательские образы разворачиваются в одном контейнере (compute), образы Distributed Train — в двух: compute-контейнер и frontend-контейнер.
Метрики содержат лейблы — дополнительные атрибуты, которые обогащают метрики метаинформацией и позволяют детально фильтровать и группировать данные мониторинга.
В Distributed Train используются системные лейблы — универсальные атрибуты для всех продуктов мониторинга, и дополнительные — специализированные атрибуты, которые содержат информацию, специфичную для задач обучения моделей или или Jupyter Servers.
Ниже приведены лейблы и их описание.
Лейбл | Описание |
|---|---|
__name__ | Название метрики. |
project_id | Идентификатор проекта, в котором регистрируется потребление. |
product_type | Продукт, метрики которого отслеживаются. Здесь product_type = mlspace. |
allocation | Аллокация региона или default, если она не задана. |
container | Название контейнера, на котором запускается пользовательская нагрузка. |
created_by | Электронная почта пользователя, создавшего экземпляр. |
instance_type | Тип вычислительного ресурса. Например, a100.1gpu. |
node | Название узла региона, на котором запускаются вычислительные узлы (поды). |
pod | Название вычислительного узла. |
product_instance_name | Название задачи обучения или Jupyter Servers. |
product_instance_type | Тип экземпляра, регистрирующего метрику. Возможные значения: jupyter_server, job. |
region | Название региона. |
workspace | Название воркспейса регистрируемого региона. |
workspace_id | Идентификатор воркспейса регистрируемого региона. |
Ниже приведены метрики и информация о них.
Метрика | Тип | Описание | Дополнительные лейблы |
|---|---|---|---|
mls_DCGM_FI_DEV_GPU_UTIL | Текущее значение (Gauge) | Потребление GPU. Метрика предоставляется NVIDIA dcgm-exporter. | gpu — номер GPU-устройства. |
mls_DCGM_FI_DEV_POWER_USAGE | Текущее значение (Gauge) | Потребление питания GPU. Метрика предоставляется NVIDIA dcgm-exporter. | gpu — номер GPU-устройства. |
mls_DCGM_FI_DEV_FB_FREE | Текущее значение (Gauge) | Свободный объем буфера памяти в МБ. Метрика предоставляется NVIDIA dcgm-exporter. | gpu — номер GPU-устройства. |
mls_DCGM_FI_DEV_FB_USED | Текущее значение (Gauge) | Использованный объем буфера памяти в МБ. Эквивалентна показателям в nvidia-smi. | gpu — номер GPU-устройства. |
mls_DCGM_FI_DEV_MEM_COPY_UTIL | Текущее значение (Gauge) | Использование памяти в операциях ввода-вывода. | gpu — номер GPU-устройства. |
mls_DCGM_FI_PROF_PIPE_TENSOR_ACTIVE | Текущее значение (Gauge) | Показатель активности тензорного канала. | gpu — номер GPU-устройства. |
Метрика | Тип | Описание | Дополнительные лейблы |
|---|---|---|---|
mls_allocation_cpu_total | Текущее значение (Gauge) | Общее количество ресурсов CPU в аллокации. | Нет дополнительных лейблов |
mls_allocation_cpu_allocated | Текущее значение (Gauge) | Количество занятых ресурсов CPU в аллокации. | Нет дополнительных лейблов |
mls_allocation_gpu_allocated | Текущее значение (Gauge) | Количество занятых ресурсов GPU в аллокации. | Нет дополнительных лейблов |
mls_allocation_gpu_total | Текущее значение (Gauge) | Общее количество ресурсов GPU в аллокации. | Нет дополнительных лейблов |
mls_allocation_ram_allocated | Текущее значение (Gauge) | Количество занятых ресурсов RAM в аллокации. | Нет дополнительных лейблов |
mls_allocation_ram_total | Текущее значение (Gauge) | Общее количество ресурсов RAM в аллокации. | Нет дополнительных лейблов |
mls_allocation_size | Текущее значение (Gauge) | Общее количество узлов в аллокации. | Нет дополнительных лейблов |
mls_node_resource_limits | Текущее значение (Gauge) | Лимит выделенных ресурсов на узле. |
|
Метрика | Тип | Описание | Дополнительные лейблы |
|---|---|---|---|
mls_jupyter_notebooks_notebook_requests_total | Счетчик (Counter) | Количество HTTP-запросов к Jupyter Server. | Нет дополнительных лейблов |
mls_jupyter_notebooks_jupyterlab_requests_total | Счетчик (Counter) | Количество HTTP-запросов к Jupyter Server в окружении JupyterLab (kernels и sessions). | Нет дополнительных лейблов |
mls_ssh_notebooks_active_sessions | Текущее значение (Gauge) | Количество активных SSH-сессий в Jupyter Server. | Нет дополнительных лейблов |
mls_container_cpu_usage_seconds_total | Счетчик (Counter) | Суммарное процессорное время, потребляемое контейнером в ядро-секундах. Метрика регистрируется в разрезе vCPU-контейнеров. | Нет дополнительных лейблов |
mls_kube_pod_container_resource_limits | Текущее значение (Gauge) | Лимит выделенных ресурсов на контейнер. |
|
mls_container_memory_usage_byte | Текущее значение (Gauge) | Потребление памяти в байтах. | Нет дополнительных лейблов |
mls_kube_pod_container_resource_limits | Текущее значение (Gauge) | Лимит выделенных ресурсов на контейнер. |
|
mls_kube_pod_status_phase | Текущее значение (Gauge) | Текущее состояние пода. | phase — статус пода. Например, Running, Pending. |
mls_container_network_transmit_bytes_total | Счетчик (Counter) | Общее количество байт, переданных через сетевой интерфейс. | interface — сетевое устройство (интерфейс) пода. |
mls_container_network_receive_bytes_total | Счетчик (Counter) | Общее количество байт, полученных через сетевой интерфейс. | interface — сетевое устройство (интерфейс) пода. |
Метрика | Тип | Описание | Дополнительные лейблы |
|---|---|---|---|
mls_shared_storage_usage_size_bytes | Текущее значение (Gauge) | Объем занятого места в сетевом хранилище в байтах. | Нет дополнительных лейблов |
mls_shared_storage_usage_inodes | Текущее значение (Gauge) | Количество занятых уникальных идентификаторов файлов и папок (inodes) в сетевом хранилище. | Нет дополнительных лейблов |
mls_shared_storage_limit_size_bytes | Текущее значение (Gauge) | Лимит занятого места в сетевом хранилище в байтах. | Нет дополнительных лейблов |
mls_shared_storage_limit_inodes | Текущее значение (Gauge) | Лимит количества уникальных идентификаторов файлов и папок (inodes) в сетевом хранилище. | Нет дополнительных лейблов |
mls_storage_usage_size_bytes | Текущее значение (Gauge) | Объем занятого места в NFS-хранилище в байтах. | Нет дополнительных лейблов |
mls_storage_usage_inodes | Текущее значение (Gauge) | Количество занятых уникальных идентификаторов файлов и папок (inodes) в NFS-хранилище. | Нет дополнительных лейблов |
mls_storage_limit_size_bytes | Текущее значение (Gauge) | Лимит занятого места в NFS-хранилище в байтах. | Нет дополнительных лейблов |
mls_storage_limit_inodes | Текущее значение (Gauge) | Лимит количества уникальных идентификаторов файлов и папок (inodes) в NFS-хранилище. | Нет дополнительных лейблов |