集群故障日志分析工具使用指南(parse_plog_hccl工具)
功能介绍
云上集群训练任务失败时,面对大量的日志,用户较难快速锁定问题rank,影响集群问题定位效率。parse_plog_hccl工具工具会自动解析HCCL组件的日志,快速给出集群中未报错的/最早报错的rankid,并辅助定界/定位一些集群常见问题,通过打屏呈现给用户。
适用于以下场景:
1. 有心跳检测版本。(云环境涉及)
2. 判断是否有卡训练未拉起或异常退出导致集群训练失败,并给出问题的rankid。
3. 判断是否存在卡间异步时间过长引起集群互相等待超时导致集群训练失败,并给出最早/最晚拉起集合通信任务的rankid。
4. 判断是否存在常见的HCCL内task执行失败(SDMA计算溢出、memcpy访问越界)导致的集群训练失败。
前提条件
在“Toolkit包安装路径{$install_path}/tools”目录下获取parse_plog_hccl工具parse_plog_hccl.py。
使用plog解析日志工具前,请确保环境已经安装以下模块:已安装python软件,且使用的python版本为3.7.5及以上版本,ubuntu系统下可以使用apt-get install python3命令安装。
使用约束
- 使用前请确保所有卡日志齐全,并保留原始文件名称,不支持日志老化场景。
- 所有卡日志需要放入同一个文件夹下,并保证不同的server的日志放在不同的子目录下。
- 运行日志时使用的python版本必须要为Python 3.7.5及以上版本。
使用指导
- 命令:
python3 parse_plog_hccl.py path [--Force_kill=1]
- 参数说明:
- path:必须参数,需指定为待解析的plog日志所在的路径,该路径下包含所有卡的日志文件。该路径可以是绝对路径也可以是相对路径。
- --Force_kill=1:仅云环境版本需设置该参数。
- 屏显结果分析:
脚本执行过程中,会有对应的日志输出,示例如下:
示例日志内容说明如下:
- 第一行:无心跳的rankid。仅云环境版本涉及该输出内容。
- 第二行:主要是错误的结果日志,表明错误是不是属于HCCL组件,如果是,则会给出错误的原因。
- 第三行:打印最先报错的rankid及报错时间。
- 第四行:打印最晚报错的rankid及报错时间。
- 第四行:建链/notify超时时间阈值。
- 第五行:集群rank数量。
- 第六行及以后:打印最早报错的rank里面的详细的ERROR日志。
注意:对于对于非HCCL错误(包括日志老化,环境问题等),对日志输出无固定格式。示例如下:
父主题: 常用故障定位工具