查看训练作业资源占用情况
场景描述
当前ModelArts Standard训练作业模块在训练作业详情页的“监控”页签中提供了训练作业的资源使用情况监控,可以查看当前训练作业整体或单个节点占用的CPU、GPU或NPU资源使用情况。
如何查看训练作业资源使用详情
- 在ModelArts管理控制台的左侧导航栏中选择“模型训练 > 训练作业”。
- 在训练作业列表中,单击作业名称进入训练作业详情页面。
- 在训练作业详情页面,单击“监控”页签查看训练作业的资源使用情况,支持以下维度的资源监控,具体的监控指标如表1所示。
- 作业监控:监控当前训练作业整体的资源使用情况,监控周期可以选择最近15分钟、最近30分钟、最近1小时、最近6小时、最近12小时、最近24小时,也可以自定义时段。
- 任务监控:监控训练作业运行的具体节点的资源使用情况,监控周期可以选择最近15分钟、最近30分钟、最近1小时、最近6小时、最近12小时、最近24小时,也可以自定义时段。
表1 训练作业监控指标 分类
指标名称
指标参数
指标含义
单位
取值范围
呈现形式
CPU
CPU使用率
ma_container_cpu_util
该指标用于统计测量对象的CPU使用率。
百分比(Percent)
0~100%
折线图
CPU使用核数
ma_container_cpu_used_core
该指标用于统计测量对象已经使用的CPU核个数
核(Core)
≥0
柱状图
内存使用
物理内存使用率
ma_container_memory_util
该指标用于统计测量对象已使用内存占申请物理内存总量的百分比。
百分比(Percent)
0~100%
折线图
物理内存使用量
ma_container_memory_used_meg
该指标用于统计测量对象实际已经使用的物理内存,对应container_memory_working_set_bytes当前内存工作集(working set)使用量。
工作区内存使用量=活跃的匿名页和缓存,以及file-baked页<=container_memory_usage_bytes。
兆字节(Megabytes)
≥0
柱状图
GPU
GPU使用率
ma_container_gpu_util
该指标用于统计测量对象的GPU使用率。
百分比(Percent)
0~100%
折线图
GPU显存使用率
ma_container_gpu_mem_util
该指标用于统计测量对象已使用的显存占显存容量的百分比。
百分比(Percent)
0~100%
折线图
GPU显存使用量
ma_container_gpu_mem_used_megabytes
该指标用于统计测量对象已使用的显存。
兆字节(Megabytes)
≥0
柱状图
NPU
NPU使用率
ma_container_npu_ai_core_util
昇腾系列AI处理器AI Core利用率
百分比(Percent)
0~100%
折线图
NPU显存使用率
ma_container_npu_memory_util
该指标用于统计测量对象已使用的NPU显存占NPU存储容量的百分比。(即将废弃, Snt3系列替代指标为ma_container_npu_ddr_memory_util,Snt9系列替代指标为ma_container_npu_hbm_util)。
百分比(Percent)
0~100%
折线图
NPU显存使用量
ma_container_npu_memory_used_megabytes
该指标用于统计测量对象已使用的NPU显存。(即将废弃, Snt3系列替代指标为ma_container_npu_ddr_memory_usage_bytes,Snt9系列替代指标为ma_container_npu_hbm_usage_bytes)。
兆字节(Megabytes)
≥0
柱状图
网络
网络IO-下行速率
ma_container_network_receive_bytes
网络接收数据速率,该指标用于统计测试对象的入方向网络流速。
字节/秒(Bytes/Second)
≥0
折线图
网络IO-上行速率
ma_container_network_transmit_bytes
网络发送数据速率,该指标用于统计测试对象的出方向网络流速。
字节/秒(Bytes/Second)
≥0
折线图
磁盘
磁盘读取速率
ma_container_disk_read_kilobytes
该指标用于统计每秒从磁盘读出的数据量。
千字节/秒(Kilobytes/Second)
≥0
折线图
磁盘写入速率
ma_container_disk_write_kilobytes
该指标用于统计每秒写入磁盘的数据量。
千字节/秒(Kilobytes/Second)
≥0
折线图
更多指标查看请参见文档查看训练作业监控指标章节实现。
如何判断训练作业资源利用率高低
在模型训练的训练作业列表页可以查看作业资源利用率情况。当作业worker-0实例的GPU/NPU的平均利用率低于50%时,在训练作业列表中会进行告警提示。

此处的作业资源利用率只涉及GPU和NPU资源。作业worker-0实例的GPU/NPU平均利用率计算方法:将作业worker-0实例的各个GPU/NPU加速卡每个时间点的利用率汇总取平均值。
如何提高训练作业资源利用率
- 适当增大batch_size:较大的batch_size可以让GPU/NPU计算单元获得更高的利用率,但是也要根据实际情况来选择batch_size,防止batch_size过大导致内存溢出。
- 提升数据读取的效率:如果读取一个batch数据的时间要长于GPU/NPU计算一个batch的时间,就有可能出现GPU/NPU利用率上下浮动的情况。建议优化数据读取和数据增强的性能,例如将数据读取并行化,或者使用NVIDIA Data Loading Library(DALI)等工具提高数据增强的速度。
- 模型保存不要太频繁:模型保存操作一般会阻塞训练,如果模型较大,并且较频繁地进行保存,就会影响GPU/NPU利用率。同理,其他非GPU/NPU操作尽量不要阻塞训练主进程太多的时间,如日志打印,保存训练指标信息等。