6个常见的IB网络不通问题
摘要:如果遇到IB网络不通,可以试着从高层往底层逐步分析看看。
本文分享自华为云社区《常见IB网络不通问题记录》,作者: tsjsdbd 。
如果遇到IB网络不通,可以试着从高层往底层逐步分析看看。仅记录下,供难友参考:
一、NCCL不通
报错:
machine-19: [0] transport/net_ib.cc:839 NCCL WARN NET/IB : Got completion with error 12, opcode 0, len 0, vendor err 129
原因:错误12,说明RDMA网络不通。
需要分析底层网络为什么不通。
比如:
- 是否单纯网络不通
- pfc流控不对导致丢包。
如果是(2)这种偶现不通的话,可以参考pfc设置规则:《为什么华为云上AI训练必须设置NCCL_IB_TC=128》
二、ib_write_bw不通
报错1:
root@tsjsdbd:~# ib_write_bw ---------------------------------------------------------- RDMA_Write BW Test Dual-port : OFFDevice : mlx4_0 Number of qps : 1Transport type : IB Connection type : RCUsing SRQ : OFF CQ Moderation : 100 Mtu : 2048[B] Link type : IB Max inline data : 0[B] rdma_cm QPs : OFF Data ex. method : Ethernet -------------------------------------------------------- local address: LID 0x81 QPN 0x160b3 PSN 0xa072 RKey 0x68010802 VAddr 0x007f184171a000 remote address: LID 0x35 QPN 0xc5a0b PSN 0xaa465a RKey 0x20010802 VAddr 0x007f3ca2b9c000 --------------------------------------------------------------------------------------- #bytes #iterations BW peak[MB/sec] BW average[MB/sec] MsgRate[Mpps] ethernet_read_keys: Couldn't read remote address Unable to read to socket/rdam_cm Failed to exchange data between server and clients
报错2:
root@tsjsdbd:~# ib_write_bw -F 29.26.130.185 -d mlx5_5 ---------------------------------------------------------- RDMA_Write BW Test Dual-port : OFF Device : mlx5_5 Number of qps : 1 Transport type : IB Connection type : RC Using SRQ : OFF PCIe relax order: ON ibv_wr* API : ON TX depth : 128 CQ Moderation : 1 Mtu : 2048[B] Link type : Ethernet GID index : 3 Max inline data : 0[B] rdma_cm QPs : OFF Data ex. method : Ethernet -------------------------------------------------------- local address: LID 0x81 QPN 0x160b3 PSN 0xa072 RKey 0x68010802 VAddr 0x007f184171a000 GID: 00:00:00:00:00:00:00:00:00:00:255:255:29:26:130:235 remote address: LID 0x35 QPN 0xc5a0b PSN 0xaa465a RKey 0x20010802 VAddr 0x007f3ca2b9c000 GID: 00:00:00:00:00:00:00:00:00:00:255:255:29:26:130:185 --------------------------------------------------------------------------------------- #bytes #iterations BW peak[MB/sec] BW average[MB/sec] MsgRate[Mpps] Completion with error at client Failed status 12: wr_id 0 Syndrom 0x81 scnt=128, ccnt=0 Failed to complete run_iter_bw function successfully
说明网络不通,需要继续分析RDMA链路。
三、ibv_rc_pingpong不通
报错:
ibv_rc_pingpong -d mlx5_bond_0 -g 3 29.28.195.228 local address: LID 0x0000, QPN 0x01417f, PSN 0x63d7fa, GID ::ffff:29.28.201.21 remote address: LID 0x0000, QPN 0x00132d, PSN 0x8c0a5b, GID ::ffff:29.28.195.228 Failed status transport retry counter exceeded (12) for wr_id 2 parse WC failed 1
说明网络不通,需要分析IP网络为什么不通。
四、rping不通
报错1:
rping -c -a 29.28.195.228 -v -C 10 cma event RDMA_CM_EVENT_ADDR_ERROR, error -110 waiting for addr/route resolution state 1
说明地址连不上,需要继续判断IP链路是否通。
报错2:
rping -c -a 29.28.197.165 -C 10 -v cma event RDMA_CM_EVENT_REJECTED, error 8 wait for CONNECTED state 4 connect error -1
这个Reject表示连接被拒绝了。只是单纯的因为 rping 工作时需首先启动一个 server side 进程,然后从 client side 试图向 server side 发起连接。
所以要先启动Server端。
rping -s 29.28.201.211 -v
五、ping不通
报错:
ping 29.28.195.228 PING 29.28.195.228 (29.28.195.228) 56(84) bytes of data. From 29.28.204.80 icmp_seq=1 Destination Host Unreachable From 29.28.204.80 icmp_seq=2 Destination Host Unreachable From 29.28.204.80 icmp_seq=3 Destination Host Unreachable From 29.28.204.80 icmp_seq=4 Destination Host Unreachable ^C --- 29.28.195.228 ping statistics --- 5 packets transmitted, 0 received, +4 errors, 100% packet loss, time 4045ms
这个估计就快到根错误了,假设交换机连接都是OK的。那基本就是路由设置问题:
可以用
# ip route get 29.28.204.80 from 29.28.201.211 29.28.204.80 from 29.28.201.211 dev enp137s0f0 uid 0
来确认发送报文的网卡是否选择正确。
如果是「同网段多IB网卡」的情况,如A100 或者 A800服务,带8个IB网卡,并都在同一个网段。则需要通过策略路由设置「源地址路由」规则来解决各个IP互通的问题。见:《RoCE多网卡时,报文可以过去,但是回不来》
六、ARP表不对
如果ping是通的,但是rping又不通。 那就还要再底层看一看了(你也算天选之子了,跑这么底层定位错误)。
正常情况,学习到的arp表,一个IP地址对应一个网卡的MAC地址。
如下:
/home/tsj # arp -n | grep 29.28.201.211 29.28.201.211 ether 08:c0:eb:8c:10:6d C enp137s0f1
两端同时查看,如果发现一个IP地址,学习到的arp记录有多条不一样的,说明arp设置不对。
需要
- 先清空arp表
- 设置arp应答规则
其中,
(1)清空arp表有2种方式:
- 指定某个IP清空:
arp -d 192.168.1.1
- 清空所有arp:(咱们直接执行这个就行)
ip -s -s neigh flush all
(2)设置arp应答规则:
sysctl -w net.ipv4.conf.all.arp_ignore=1 sysctl -w net.ipv4.conf.all.arp_announce=2
意思是只答复对应网卡的arp响应。
设置完后,再ping一次后,确认两边学习到的arp表是正确的。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
磐舟磐基平台:基于KubeEdge的落地实践
摘要:实现统一管理、简化多集群的运维系统、减少运营成本;同时也成功将前面提到的500台鲲鹏服务器以及它上面的BC Linux for Euler集群纳入磐基PaaS平台的大家庭之中,运维效率大幅增加。 本文分享自华为云社区《中国移动:磐舟磐基平台 基于KubeEdge的落地实践》,作者:中国移动磐舟磐基团队 & 华为iSula团队 & CNCF KubeEdge团队。 磐舟一体化云交付平台是中国移动自主研发的面向开发人员的代码开发,自动部署的平台。磐舟一体化交付平台自研实现了一套GitOps驱动引擎,支持从需求设计、开发构建、测试部署的全部开发与运维功能需求,实现应用一键上磐基容器云平台。 磐基容器云平台是中国移动信息公司基于Kubernetes构建的企业级PaaS解决方案,实现Kubernetes能力的标准化封装及调用,包括提供开发和运行环境、资源弹性伸缩、精细化微服务管理、便捷一站式服务、跨地域多集群调度和智能监控维护等六大能力。 磐舟和磐基是相互配合的,开发人员在磐舟集群上开发,部署到磐基PaaS集群上运行应用,也支持在磐舟上归档磐基集群ops配置,通过GitOp...
- 下一篇
实践讲解强化学习之梯度策略、添加基线、优势函数、动作分配合适的分数
摘要:本文将从实践案例角度为大家解读强化学习中的梯度策略、添加基线(baseline)、优势函数、动作分配合适的分数(credit)。 本文分享自华为云社区《强化学习从基础到进阶-案例与实践[5]:梯度策略、添加基线(baseline)、优势函数、动作分配合适的分数(credit)》,作者: 汀丶。 1 策略梯度算法 如图 5.1 所示,强化学习有 3 个组成部分:演员(actor)、环境和奖励函数。智能体玩视频游戏时,演员负责操控游戏的摇杆, 比如向左、向右、开火等操作;环境就是游戏的主机,负责控制游戏的画面、负责控制怪兽的移动等;奖励函数就是当我们做什么事情、发生什么状况的时候,可以得到多少分数, 比如打败一只怪兽得到 20 分等。同样的概念用在围棋上也是一样的,演员就是 Alpha Go,它要决定棋子落在哪一个位置;环境就是对手;奖励函数就是围棋的规则,赢就是得一分,输就是负一分。在强化学习里,环境与奖励函数不是我们可以控制的,它们是在开始学习之前给定的。我们唯一需要做的就是调整演员里面的策略,使得演员可以得到最大的奖励。演员里面的策略决定了演员的动作,即给定一个输入,它会输出演...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程