AI开发平台MODELARTS-训练作业卡死检测定位:检测规则
检测规则
卡死检测主要是通过监控作业进程的状态和资源利用率来判定作业是否卡死,会启动一个协程来周期性地监控上述两个指标的变化情况。卡死检测有单实例和全实例两种检测规则,是同时生效的。
- 单实例检测
- 进程状态:只要训练作业单实例中的进程IO存在变化,就进入下一个检测周期。如果在多个检测周期内,所有进程IO都没有变化,则进入资源利用率检测阶段。
- 资源利用率:在作业单实例进程IO没有变化的情况下,采集一定时间段内的GPU利用率或NPU利用率,并根据这段时间内的GPU利用率或NPU利用率的方差和中位数来判断资源使用率是否有变化。如果没有变化,则判定作业卡死。
- 全实例检测
资源利用率:当作业在一段时间内所有实例的GPU利用率或者NPU利用率都没有变化,则判定作业卡死。
系统预置了卡死检测的环境变量“MA_HANG_DETECT_TIME=30”,表示检测到指标异常并持续30分钟则判定作业卡死。如果需要修改卡死检测时间,则可以修改环境变量“MA_HANG_DETECT_TIME”的值,具体操作指导请参见管理训练容器环境变量。

- 由于检测规则的局限性,当前卡死检测存在一定的误检率。如果是作业代码本身逻辑(如长时间sleep)导致的卡死,请忽略。
- 如果对于误检有疑问或者卡死问题无法自行解决,您可以前往ModelArts开发者论坛进行提问或者搜索问题。