分布式训练(DLC)任务支持查看并监控资源状况,并且提供了全面详细的监控指标,帮助您更好地掌握资源负载情况。通过监控报警功能,您可以对DLC训练任务的资源水位进行实时监控,并灵活地配置报警规则和报警通知。如果资源水位出现波动,例如GPU使用率超过设定阈值,则会发送报警通知。本文为您介绍如何通过云监控和ARMS查看监控数据、配置监控报警通知、订阅监控指标等。
前提条件
设置DLC训练任务的监控与报警,您需要先创建一个或多个DLC训练任务。详情请参见创建训练任务。
使用限制
功能分类 | 支持的资源类型 | 支持的地域 |
DLC | 灵骏智算资源 |
|
通用计算资源 |
|
操作账号和权限要求
阿里云主账号:使用该账号可完成所有操作,无需额外授权。
RAM账号:
当您需要查看某个工作空间相应DLC任务的监控数据时,您需要为RAM账号添加以下权限:
当您需要查看某个工作空间相应DLC任务的监控数据,并配置监控报警通知时,您需要为RAM账号添加以下权限:
监控指标说明
监控指标主要包括CPU、内存、磁盘、网络、RDMA、CPFS,以及GPU相关指标,如显存使用率、算力使用率、SM设备使用率、PCIE及NVLink接收/发送数据量等。当前维度主要支持:作业(任务)维度、Pod(Worker)维度和GPU单卡维度。下面是一些典型的健康指标,全量指标列表及细节说明请参见分布式训练(DLC)指标列表。
作业(任务)维度
监控指标 | 描述 |
CPU使用率(作业维度) | 指定作业的CPU使用百分比。 |
内存使用率(作业维度) | 指定作业的内存使用百分比。 |
磁盘读取数据量(作业维度) | 指定作业的磁盘读取数据量(MiB)。 |
磁盘写入数据量(作业维度) | 指定作业的磁盘写入数据量(MiB)。 |
网络接收数据量(作业维度) | 指定作业的网络接收数据量(MiB)。 |
网络发送数据量(作业维度) | 指定作业的网络发送数据量(MiB)。 |
GPU算力使用率(作业维度) | 指定作业的GPU算力使用率。 |
GPU显存使用率(作业维度) | 指定作业的GPU显存使用率。 |
GPU SM设备使用率(作业维度) | 指定作业的GPU SM设备使用率。 |
GPU设备功耗(作业维度) | 指定作业的GPU设备功耗。 |
GPU温度(作业维度) | 指定作业的GPU温度。 |
GPU整卡健康情况(作业维度) | 指定作业的包含的GPU整体健康情况(100%为健康,低于100%则存在部分卡异常)。 |
RDMA接收数据量(作业维度) | 指定作业的RDMA接收数据量。 |
RDMA发送数据量(作业维度) | 指定作业的RDMA发送数据量。 |
CPFS写入数据量(作业维度) | 指定作业的CPFS设备写入数据量(MB)。 |
CPFS读取数据量(作业维度) | 指定作业的CPFS设备读取数据量(MB)。 |
NVLink接收数据量(作业维度) | 指定作业的GPU设备NVLink上的接收数据量。 |
NVLink发送数据量(作业维度) | 指定作业的GPU设备NVLink上的发送数据量。 |
PCIE接收数据量(作业维度) | 指定作业的GPU设备PCIE上的接收数据量。 |
PCIE发送数据量(作业维度) | 指定作业的GPU设备PCIE上的发送数据量。 |
更多指标,请参考分布式训练(DLC)指标列表。 |
GPU单卡维度
监控指标 | 描述 |
GPU显存设备接口使用率(卡维度) | 指定Pod的单张/多张卡的GPU显存设备接口使用率。 |
GPU SM设备使用率(卡维度) | 指定Pod的单张/多张卡的GPU SM设备使用率。 |
GPU设备功耗(卡维度) | 指定Pod的单张/多张卡的GPU设备功耗。 |
GPU温度(卡维度) | 指定Pod的单张/多张卡的GPU设备温度。 |
GPU整卡健康情况(卡维度) | 指定Pod的单张/多张卡的GPU整体健康情况(100%为健康,低于100%则存在部分卡异常)。 |
更多指标,请参考分布式训练(DLC)指标列表。 |
Pod(Worker)维度
监控指标 | 描述 |
CPU使用率(Pod维度) | 指定Pod的CPU使用百分比。 |
内存使用率(Pod维度) | 指定Pod的内存使用百分比。 |
磁盘读取数据量(Pod维度) | 指定Pod的磁盘读取数据量(MiB)。 |
磁盘写入数据量(Pod维度) | 指定Pod的磁盘写入数据量(MiB)。 |
网络接收数据量(Pod维度) | 指定Pod的网络接收数据量(MiB)。 |
网络发送数据量(Pod维度) | 指定Pod的网络发送数据量(MiB)。 |
GPU算力使用率(Pod维度) | 指定Pod的GPU算力使用率。 |
GPU显存使用率(Pod维度) | 指定Pod的GPU显存使用率。 |
GPU SM设备使用率(Pod维度) | 指定Pod的GPU SM设备使用率。 |
GPU设备功耗(Pod维度) | 指定Pod的GPU设备功耗。 |
GPU温度(Pod维度) | 指定Pod的GPU温度。 |
GPU整卡健康情况(Pod维度) | 指定Pod的包含的GPU整体健康情况(100%为健康,低于100%则存在部分卡异常)。 |
RDMA接收数据量(Pod维度) | 指定Pod的RDMA接收数据量(MiB)。 |
RDMA发送数据量(Pod维度) | 指定Pod的RDMA发送数据量(MiB)。 |
CPFS读取数据量(Pod维度) | 指定Pod的CPFS设备读取数据量(MiB)。 |
CPFS写入数据量(Pod维度) | 指定Pod的CPFS设备写入数据量(MiB)。 |
NVLink接收数据量(Pod维度) | 指定Pod的GPU设备NVLink上的接收数据量。 |
NVLink发送数据量(Pod维度) | 指定Pod的GPU设备NVLink上的发送数据量。 |
PCIE接收数据量(Pod维度) | 指定Pod的GPU设备PCIE上的接收数据量。 |
PCIE发送数据量(Pod维度) | 指定Pod的GPU设备PCIE上的发送数据量。 |
更多指标,请参考分布式训练(DLC)指标列表。 |
使用云监控
云监控(CloudMonitor)是一项针对阿里云资源和互联网应用进行监控的服务,为云上用户提供开箱即用的企业级开放型一站式监控解决方案。您可以登录云监控控制台,查看PAI-分布式训练(DLC)任务监控数据,并设置告警通知。云监控还支持通过API订阅指标数据,助您建立自己的监控系统和数据大盘。更多关于云监控的详细介绍,请参见什么是云监控。
计费说明
使用云监控服务会产生一定的费用,详细的计费说明,请参见云监控计费说明。
查看监控数据
登录云监控控制台。
在左侧导航栏,选择
。在云产品大盘页面,选择PAI-分布式训练(DLC)。在搜索框内,选择或搜索工作空间ID,该工作空间中DLC任务对应的监控图表会在页面下方展示。如何查询工作空间ID,请参见管理工作空间。在对应监控图表中,可以进行以下操作:
切换监控维度:目前支持作业维度、POD(Worker)维度及GPU维度的监控指标展示。
单击作业维度,您可以选择或输入DLC任务ID,查看单个任务的监控数据视图。
单击POD维度,您可以选择或输入POD ID,查看单个POD的监控数据视图。
单击GPU维度,您可以选择或输入POD ID,查看指定DLC任务单个POD的GPU维度的监控数据视图。
切换展示时间范围:
放大视图:您可以单击每个图表右上角的放大按钮,查看监控数据的细节视图。
配置监控报警
通过监控报警功能,您可以监控分布式训练(DLC)任务的资源水位,并灵活地配置报警规则。如果资源水位出现波动,例如低于配置的报警规则时,则会发送报警通知。本章节为您介绍如何通过云监控控制台和API的方式,配置监控报警功能。
配置报警联系人
创建报警联系人。
登录云监控控制台。
在左侧导航栏,选择 。
在报警联系人页签,单击创建联系人。
在设置报警联系人面板,填写报警联系人的姓名、手机号码、邮箱和Webhook地址,其他参数均保持默认值。
说明报警通知信息语言默认为自动,表示云监控根据当前阿里云账号注册时的语言,自动适配报警通知信息的语言。
信息验证无误后,单击确认。
创建报警联系组。
登录云监控控制台。
在左侧导航栏,选择 。
单击报警联系组页签。
在报警联系组页签,单击新建联系人组。
在新建联系人组面板,填写报警联系人组的组名,并选择已有报警联系人。
单击确认。
配置报警规则
在云监控控制台的左侧导航栏,选择 。
在云产品监控页面,搜索并进入PAI-分布式训练(DLC)。
在PAI-分布式训练(DLC)页面,选择服务所在的地域,并单击创建报警规则。
在创建报警规则面板,配置下列参数,并单击确认。
参数
描述
产品
云监控管理的产品名称,选择PAI-分布式训练(DLC)。
资源范围
报警规则的作用范围,目前支持全部资源、实例(作业):
全部资源:DLC的任何资源满足报警规则,都会发送报警通知。
实例:根据您选定的产品,您需要在关联资源中添加需要关联的工作空间。仅添加的工作空间下的DLC作业满足报警规则时,才发送报警通知。
规则描述
报警规则主体,当监控数据满足指定条件时,触发报警规则。规则描述的设置方法,请参见创建报警规则。
通道沉默周期
报警发生后如果未恢复正常,间隔多久重复发送一次报警通知。
生效时间
报警规则的生效时间。报警规则只在生效时间内才会检查监控数据是否需要报警。
标签
自定义设置报警规则的标签。包括标签名称和标签值。
报警联系人组
发送报警的联系人组,选择已绑定报警联系人的报警组。
在PAI-分布式训练(DLC)页面,单击查看报警规则,即可查看已创建的报警规则详情、报警历史等,并支持修改规则。
您可以通过调用API的方式,配置监控报警服务,功能包括查看报警历史、管理报警模板、配置报警规则和报警联系人等。具体调用方法和详情介绍,请参见云监控API目录:报警服务。
订阅监控指标
云监控提供完善的API服务,您可以通过调用API的方式,订阅DLC的监控指标及数据,搭建自己的监控系统和数据大盘。具体操作步骤,请参见云产品监控API目录。
云监控API | API概述 |
调用DescribeMetricLast接口查询指定监控项的最新监控数据。 | |
调用DescribeMetricList接口查询指定云产品的指定监控项的监控数据。 | |
调用DescribeMetricData接口查询指定云产品的某个监控项的监控数据。 | |
调用DescribeMetricMetaList接口查询云监控开放的监控项详情。 | |
调用DescribeProjectMeta接口查询云监控支持的时序类监控项产品列表。 | |
调用DescribeMetricTop接口先查询指定云产品的指定监控项的最新监控数据,再查询该监控项排序后的监控数据。 |
以DescribeMetricList接口为例,为您说明如何调用该API来查询PAI-分布式训练(DLC)产品下指定指标的监控数据。
前往分布式训练(DLC)指标列表页面。
在指标列表页面,单击目标指标操作列下的获取指标数据。
在OpenAPI门户页面,配置以下关键参数,其他参数取默认配置。更多参数配置说明,请参见DescribeMetricList。
参数
描述
Namespace
配置为acs_pai_dlc。
MetricName
配置对应的监控指标。例如CARD_GPU_DRAM_ACTIVE_UTIL。
StartTime
开始时间。例如2024-05-15 00:00:00。
EndTime
结束时间。例如2024-05-28 00:00:00。
说明StartTime和EndTime之间的间隔小于等于31天。
参数配置完成后,单击发起调用,即可查看相应时间的监控数据。
使用ARMS
应用实时监控服务ARMS(Application Real-Time Monitoring Service)是一款阿里云云原生可观测产品平台。基于ARMS提供的能力,您可以自定义一套PAI-DLC分布式训练服务的Grafana大盘,以及使用Prometheus配置灵活的报警规则,帮助您全面详细地监控DLC任务指标数据。关于ARMS更详细的内容介绍,请参见应用实时监控服务ARMS。
计费说明
使用ARMS服务会产生一定的费用,详细的计费说明,请参见ARMS计费说明。
接入监控数据
具体操作步骤如下:
登录ARMS控制台,然后在左侧导航栏,单击接入中心。
在接入中心页面,单击左侧人工智能页签,然后单击阿里云 PAI-DLC分布式训练服务。
在弹出面板的开始接入页签,选择数据存储地域并配置接入名称,然后单击确定。
大约需要等待1~2分钟,即可完成PAI-DLC分布式训练服务的接入。您也可以切换到效果预览、采集指标及告警规则模板页签,分别查看指标监控大盘、支持采集的指标以及告警规则名称和模板详情。
安装完成后,您可以单击接入管理,查看已接入环境的详细信息。
查看Grafana大盘
进入云服务环境详情页面。具体操作,请参见步骤二:查看监控大盘。
在组件管理页签的组件类型区域,选择阿里云PAI-DLC分布式训练服务,并单击右侧的大盘,即可查看内置的Grafana大盘。
单击大盘名称,查看监控大盘。
配置Prometheus报警
您可以通过Prometheus配置监控报警,具体操作步骤如下:
进入云服务环境详情页面。具体操作,请参见步骤二:查看监控大盘。
在组件管理的组件类型列表中,选择阿里云PAI-DLC分布式训练服务并单击告警规则,即可查看内置的告警规则。
内置的告警规则会产生告警事件,但是不会进行告警通知,您可以通过以下两种配置方法将告警通知发送到邮件或其他平台:
通过设置通知策略,制定针对告警事件的匹配规则。当匹配规则被触发时,系统会以您指定的通知方式向通知对象发送告警信息。具体操作,请参见通知策略。
通过编辑告警规则配置通知方式。在编辑Prometheus告警规则页面,您也可以自定义告警条件、持续时间、告警内容以及告警通知等。有关告警详细配置的信息,请参见Prometheus告警规则。