HCCL_DFS_CONFIG
功能描述
HCCL提供了多种故障检测功能的开关设置,包括建链故障探测时间配置、集群心跳监测开关以及进程卡死检测开关等。这些检测功能开启后,能够在业务出现异常时快速定位并显示故障信息,有助于问题及时排查处理。
该环境变量支持以下配置项:
- connection_fault_detection_time:建链故障探测时间。
HCCL会在建链超时时启动建链失败根节点定位能力,并将失败根节点信息传播。整个过程耗时为:“connection_fault_detection_time”参数取值 + 10s的根节点信息传播时间。
“connection_fault_detection_time”参数支持的取值:0,[20, 7200]。单位s,默认为20。
该参数配置为“0”时,代表关闭建链故障探测功能,即建链失败时无额外等待时间,建链进程立即退出。
- cluster_heartbeat:集群心跳监测开关,用于通信操作执行超时的情况下,扩散故障信息,并在运行日志中记录故障根节点信息。
该参数支持两种取值:on(开启心跳监测功能)、off(关闭心跳监测功能),默认值为on。
说明:关闭集群心跳监测开关后,通信操作执行超时的异常情况无法探测,集群故障扩散能力丢失,且根节点故障信息不会记录到运行日志中。
- stuck_detection:进程卡死检测开关。
该参数支持两种取值:on(开启进程卡死检测能力)、off(关闭进程卡死检测能力),默认值为on。
对于通信性能非常敏感的场景,可通过此参数关闭进程卡死检测能力,但需要注意,关闭进程卡死检测能力后,不会再主动探测上报业务异常卡死故障。
- inconsistent_check:算子下发不一致检测开关。
该参数支持两种取值:on(开启进程算子下发不一致检测能力)、off(关闭进程算子下发不一致检测能力),默认值为off。
通过此参数可以开启进程算子下发不一致检测能力,但会产生一定的性能劣化。需要注意的是,默认情况下,关闭此开关后,不再主动检测并记录算子下发不一致的问题。
说明:此功能不支持检测HcclBatchSendRecv算子和图模式场景,且开启后会生成数据缓存,占用HOST侧内存。
- task_monitor_interval:算法编排展开位置为AI CPU的场景下,开启算子task执行耗时时间监控。“task_monitor_interval”参数的取值范围为:[0, 7200000],单位ms,默认为0。
- 取值为“0”时:关闭算子task执行耗时监控能力。
- 取值大于“0”时:开启算子task执行耗时监控能力。当单个task执行耗时大于配置值时,则会打印该task信息,打印位置为“$HOME/ascend/log/run/device-*/”,日志关键词为“StreamTaskMonitor”。打印后会重新进行计时,即若单个task执行耗时为配置值的多倍,则会有多轮次打印信息。
说明:
- 该功能当前仅支持
Atlas A3 训练系列产品 /Atlas A3 推理系列产品 ,仅在算法编排展开位置为AI CPU时生效。 - 该功能为异常时维测功能,开启后会对业务执行性能产生影响,因此不建议业务正常运行时开启。
- 当该配置取值小于100ms时,无法保证功能的完备性,同时可能对业务执行性能、功能造成较大影响,甚至可能导致业务执行失败。
- 该配置取值较小时,存在“$HOME/ascend/log/run/device-*/”目录下日志刷屏的风险。
- 该功能可作为task exception的辅助维测补充,在此场景下,建议配置数值略小于“1/2 * HCCL_EXEC_TIMEOUT环境变量取值”。
本环境变量提供的检测功能仅用于辅助定位集群故障点位置,在某些复杂场景下可能不是集群业务失败的根因位置。请基于探测事件的生成时间、被检测节点的具体报错进一步确认故障根节点位置。
配置示例
export HCCL_DFS_CONFIG="connection_fault_detection_time:30,cluster_heartbeat:on,stuck_detection:on,inconsistent_check:off,task_monitor_interval:0"
使用约束
无