Skip to content

集群一键巡检工具教程 ​

该章节为集群系统一键巡检工具的使用说明,巡检工具提供自动化查看集群状态及排查故障的功能,目标是扫描出上文中的所有配置的异常问题,解放人力,在多机环境或者集群使用前,可运行该工具来进行环境正常性判断,如出现异常需人工进行相应问题修复。

该章节使用教程适用于SDK release 2.29.0.5及以上的软件版本。

使用方式介绍 ​

集群巡检工具脚本随maca sdk发布,目录为 /opt/maca/tools/mccl/inspector/

运行方式概述 ​

cd到工具目录,直接执行mx-cmi(路径: /opt/maca/tools/mccl/inspector/mx-cmi )

sdk master #20250529-508及之后的版本,mx-cci更名为mx-cmi

工具会自动根据配置,检测集群各节点状态,并在终端打印检测结果。 更详细的日志和信息存储在 ~/inspector_logs/ 目录.

运行效果如下图示:

运行方式概述

使用前提及快速上手 ​

环境依赖 ​

  • 集群所有机器节点需创建相同的用户账号/密码, 且具有sudo免密权限!

  • 集群所有机器节点安装相同的软件,包括:ssh, scp, expect, ifconfig, ib驱动。

  • 参考本指南上述章节,完成相应的软件安装,网络配置等。

  • 如在docker内运行,请参考docker章节。

快速开始 ​

单机测试:

  • 修改config.ini中的账户密码,(路径: /opt/maca/tools/mccl/inspector/config.ini )

  • mx-cmi运行

多机测试:

  • 修改config.ini中的账户密码,

  • 修改config.ini中hosts字段,指定检查目标IP

  • mx-cmi -R运行

使用教程 ​

配置依赖 ​

工具脚本的配置文件要求为ini格式(默认UTF-8编码)。

配置模式:

工具脚本支持一下三种指定配置文件方式:

1)自定义配置文件路径:工具支持命令行参数传入指定配置文件 mx-cmi -f config_path
2)默认配置参数未指定配置时,工具自动检测并使用mx-cmi所在目录的配置文件

基础配置:

基础配置字段为必填字段。 具体如下(默认配置路径: /opt/maca/tools/mccl/inspector/config.ini):

配置依赖

除上述基础配置外, 其他配置字段为可选字段,工具提供默认值。 配置后自动覆盖默认配置。(默认配置路径: /opt/maca/tools/mccl/inspector/advanced_config.ini)

具体字段配置要求 请参见 本文 此章节。

只需在运行任务的节点运行工具时指定配置。 不需要手动在每个节点创建配置。

基础测试 ​

基础测试 会对集群个节点进行基本信息获取,并进行状态检查。 基础测试为工具脚本默认执行环节,每次工具执行都会进行基础测试。

测试项:

  • GPU数量及速度是否正常,是否由掉卡掉速

  • 用户是否正确配置 group、权限、集群免密()等。

  • 是否已关闭ACS

  • 网卡链路状态是否正常

  • RoCE网卡是否正确配置拥塞/优先级等

  • 集群间GPU/网卡 的 驱动/固件/sdk等版本是否一致

  • ......

测试命令:

/opt/maca/tools/mccl/inspector/mx-cmi

测试效果示例:

基础测试

性能测试 ​

注意: 性能测试项会和线上任务互相影响。 请确保运行测试时,没有其他GPU任务正在运行。

性能测试包括以下测试项 :

pingRDMA 网卡连通性测试
ib_writeRDMA 网卡带宽性能测试
p2p单机内GPU, CPU间p2p带宽性能测试
p2p_s多机间GPU两卡间p2p带宽性能测试
mccl_perf集群内进行集合通信all_reduce_perf性能测试

执行方式:

方式1:运行所有性能测试项

/opt/maca/tools/mccl/inspector/mx-cmi -r

方式2:命令行指定测试列表。

/opt/maca/tools/mccl/inspector/mx-cmi -r "ping,ib_write"

效果示例:

  • 正常效果示例:

性能测试

  • 异常效果示例:

性能测试

性能测试前会自动进行基础测试, 基础测试失败则会停止运行测试。 需要用户先修复基础环境,通过基础测试后,才能继续性能测试。

无sudo权限降级模式 ​

当用户无法获取sudo权限时, 工具通过降级运行方式 允许用户 进行验证。 需要注意,此时会跳过一些重要测试,如ACS开启状态、链路带宽、dmesg信息获取等。 因此不建议此模式。

工具脚本运行方式与之前相同,会在终端交互时自动询问用户是否降级执行。

运行效果示例:

无sudo权限降级模式

查看工具产出系统拓扑信息 ​

工具会在运行时, 抽取当前集群各个节点的GPU/NIC拓扑等基本信息。 可以通过命令行方式打印到终端,也可以查看运行后产出的信息文件( ~/inspector_logs/detailed_info)

运行效果示例:

查看工具产出系统拓扑信息

配置字段详细介绍 ​

基础测试配置 ​

基础配置 ​

此部分配置为 必须 配置。

基础配置

通用配置(环境检查) ​

本节配置 为基础测试检测配置。 工具跟检测系统信息后,与本配置中的字段进行比对校验, 判断是否符合预期。 如需调整基础检测行为,请按照下图字段描述进行调整。

通用配置(环境检查)

RoCE配置(基础测试) ​

本节配置 用于 RoCE类型网卡基础测试校验。 工具会读取网卡拥塞配置等信息,并根据配置进行检查比对。

RoCE配置(基础测试)

性能测试配置 ​

ping 测试配置 ​

本节配置 ping 测试行为。 一般无需修改

ping 测试配置

ib_write 测试配置 ​

本节配置 ib_write 测试行为。

注意:

ib_limit 字段为0时,表示自动根据检测网卡带宽进行测试, 以理论带宽的70% 为正常标准。

如果需要自定义带宽要求,可以修改为期望值(支持单位:GB/s)

ib_write 测试配置

p2p 测试配置 ​

本节配置 transferbench 的测试行为。

d2d_bw_limit 字段: 限定GPU间各级别链路带宽的下限。注意按照指定顺序配置。

p2p 测试配置

p2p_s 测试配置 ​

本节配置 transferbench 的测试行为。

d2d_bw_limit 字段: 限定GPU间各级别链路带宽的下限。注意按照指定顺序配置。

p2p_s 测试配置

mccl_perf测试配置 ​

本节配置 mccl_perf测试行为。

bw_limit: 集合通信all_reduce_perf 期望峰值带宽下限。

node_per_group 和 gpu_per_node: 这两个字段用于调整希望参与集合通信的机器节点和单机卡数。

mccl_perf测试配置

常见检测结果及处理建议 ​

工具运行失败 ​

节点ssh登录失败 ​

效果示例:

节点ssh登录失败

处理建议:

检查 控制网络连接。 检查ssh服务是否正常。检查.ssh目录权限是否正常。

基础检查异常 ​

网卡基础状态检查异常 ​

下图示例中的异常项包括:固件版本不一致,网卡拥塞配置异常。

网卡基础状态检查异常

处理建议:

请参考该章节重新安装驱动、配置网卡。

GPU基础状态异常 ​

下图示例中,存在GPU掉卡, GPU vbios集群内不一致问题。

GPU基础状态异常

处理建议:

  • 重新插拔或者更换GPU,重新更新驱动,并重启服务器。

服务器配置异常 ​

下图示例中,服务器开启IOMMU。 该配置会开启PCIe ACS, 影响通信功能。

服务器配置异常

修复建议:

单项测试检查异常 ​

ping 测试异常 ​

示例:

ping 测试异常

处理建议:

请检查集群网络环境配置, 交换机配置等。

ib_write 测试异常 ​

示例1: 带宽不符合预期

ib_write 测试异常

处理建议:

  • 请检查网络配置、交换机配置。

示例2: 部分网络ib_write 不通

ib_write 测试异常

处理建议:

  • 检查网络设置,是否存在spine层且配置异常。

p2p 带宽异常 ​

效果示例:

p2p 带宽异常

处理建议:

  • 请检查环境是否有其他任务同时执行。

  • 请尝试插拔GPU,重启服务器。

mccl_perf带宽异常 ​

效果示例:

mccl_perf带宽异常

处理建议:

检查dmesg有错误信息 ​

示例截图: 测试任务在执行时,会捕获测试执行期间的增量dmesg error。

检查dmesg有错误信息

处理建议:

  • 请根据相关dmesg 错误信息,查看KMD wiki 资料。

  • 插拔GPU并重启集群服务器。