脱敏说明文中主机名已替换为节点1~节点4本机管理网 IP 已替换为管理网IP。私网网段192.168.100.0/24/192.168.101.0/24为集群内部规划地址交换机管理网段192.168.88.0/24为设备出厂默认值不具备可识别性予以保留。目录一、当前拓扑二、初始发现三、NCCL 性能现象四、服务器侧验证五、交换机 MTU 尝试六、已完成的修复七、参考博客对照八、当前结论九、下一步方向一、当前拓扑本机Wi-Fi管理网IP有线直连 MikroTik 交换机交换机型号MikroTik CRS812-8DS-2DQ-2DDQ-RMRouterOS7.20.7 long-term管理地址192.168.88.1服务器节点1节点2节点3节点4二、初始发现交换机端确认 4 台服务器均已连接物理链路正常服务器交换机端口链路状态速率节点4qsfp56-dd-1-1link-ok200Gbps节点3qsfp56-dd-2-1link-ok200Gbps节点2qsfp56-1-1link-ok200Gbps节点1qsfp56-2-1link-ok200Gbps交换机 CPU、内存、端口丢包均正常。三、NCCL 性能现象用户提供的 NCCL 测试结果Avg bus bandwidth: 2.85418 GB/s换算2.85418 GB/s * 8 ≈ 22.8 Gbps这远低于 200G 链路应有水平。四、服务器侧验证登录节点1后发现两张 200G 网卡均 UPRoCE/RDMA 均 ACTIVE网卡协商速率均为200000Mb/s但 MTU 均为1500RoCEactive_mtu为1024RDMA 测试结果ib_write_bw rail1: ~1.52 GB/s ib_write_bw rail2: ~1.51 GB/s说明问题不是 NCCL 单独导致底层 RoCE 带宽本身就很低。五、交换机 MTU 尝试交换机当前状态200G ports mtu1500 200G ports l2mtu1584 bridge actual-mtu1500 bridge l2mtu1584尝试配置/interface/ethernetset...mtu9000/interface/bridgesetbridgemtu9000结果端口最大只能到1584bridge 设置9000报错failure: could not set mtu随后已恢复交换机端口 MTU 为1500。六、已完成的修复原始服务器配置中两张 200G 网卡都在同一个网段192.168.100.0/24这会导致 Linux 默认到所有192.168.100.x都走第一张网卡第二张 rail 不会被普通 IP 路由正确使用。已改为双 rail验证结果8 个地址全部 ping 通Rail 1 走enp1s0f1np1Rail 2 走enP2p1s0f1np1配置已写入/etc/netplan/40-cx7.yaml原配置已备份为/etc/netplan/40-cx7.yaml.bak-rail-split七、参考博客对照参考文章https://cloud.tencent.com/developer/article/2633083文章中同样使用 CRS812并提到使用 RoCE建议开启9000 MTU需要正确配置交换机和服务器网卡关注 NCCL/RDMA 性能但现场与文章存在关键差异文章期望CRS812 支持 Jumbo / 9000 MTU 现场结果当前 200G 端口 l2mtu1584无法设置 9000因此文章有参考价值但不能直接照搬。重点要继续查 CRS812 的端口模式、breakout 模式、RouterOS 版本/功能限制。八、当前结论已解决确认 4 条 200G 物理链路正常确认 RoCE/RDMA 能跑修复双 200G 网卡同网段导致的 rail 选路混乱持久化双 rail IP 配置未解决核心性能瓶颈仍在交换机 l2mtu1584 服务器 MTU1500 RoCE active_mtu1024 RDMA 带宽约 1.5 GB/s NCCL busbw 约 2.85 GB/s这说明当前网络虽然是 200G 物理链路但 RoCE 实际只能以很小 MTU 工作吞吐远低于预期。九、下一步方向方向 A继续研究 CRS812 jumbo 支持重点查CRS812 是否需要特定端口模式才能支持 jumbo是否需要切换 200G/100G breakout 模式QSFP-DD/QSFP56 子接口是否有不同 L2MTU 限制RouterOS 版本是否影响l2mtuMikroTik 是否有专门的 jumbo frame 配置方式目标让交换机端口 l2mtu 9000 让服务器 MTU 9000 让 RoCE active_mtu 4096方向 B联系 MikroTik 或查官方文档需要确认这个型号在当前端口模式下是否真的支持 9000 jumbo frame。关键问题CRS812-8DS-2DQ-2DDQ-RM 在 200G-baseCR4 模式下为什么 l2mtu 只有 1584 是否支持将 qsfp56 / qsfp56-dd 端口 l2mtu 提升到 9000方向 C如果 CRS812 无法支持 jumbo如果确认该模式无法 jumbo则 RoCE 性能可能会一直受限。可选方案换支持 9000 MTU 的 200G/400G RoCE 交换机改用支持该需求的端口模式降级为 TCP/NCCL socket 方案但性能预期会明显低于 RoCE使用点对点直连测试排除交换机限制方向 D重新跑 NCCL 测试现在 rail 已拆分建议重新跑 NCCL并加日志exportNCCL_DEBUGINFOexportNCCL_DEBUG_SUBSYSINIT,NETexportNCCL_IB_DISABLE0exportNCCL_SOCKET_IFNAMEenp1s0f1np1,enP2p1s0f1np1如果需要指定 HCAexportNCCL_IB_HCArocep1s0f1,roceP2p1s0f1重点看日志中是否出现NET/IB而不是NET/Socket
