RoCE
RoCE(RDMA over Converged Ethernet。基于融合以太网的RDMA)
- 传统应用的局限
传统方式:OS封装TCP/IP,经过主缓存和网卡缓存,最终到达另一端。
局限性:TCP/IP协议栈在传输报文的过程中涉及内核的多次上下文切换,每次切换耗费5-10微秒,导致每次传输都有数十微秒的延迟。此外,会涉及至少3次的数据拷贝,同时依赖CPU进行数据处理。如果要传输的数据越大,CPU的负载就会越高。
- RDMA(Remote Direct Memory Access,远端内存直接访问技术)
Remote:数据直接在两个节点上传输
Direct:无需内核参与,将数据传输的功能交给NIC硬件
Memory:只需要在两个节点的应用程序的虚拟内存间传输,无需额外的复制和缓存
Access:支持send/recieve,以及read/write。
- RoCE是什么
RoCE就是让两台服务器的内存“直接对话”,不用经过操作系统和CPU,通过网卡直接传数据,降低CPU的负载。主要用在需要快速传大量数据的地方,比如AI模型训练中GPU之间频繁同步参数,或者分布式存储、高性能数据库节点间快速交换数据。
- 禁用RoCE后
(1)会造成什么样的后果
-
AI/GPU训练性能下降:GPU节点间通信从低延迟的RDMA模式退化为传统TCP/IP模式。
-
分布式存储性能下降:如Ceph、Lustre等依赖RoCE实现高速数据同步的系统,吞吐降低、延迟升高,影响读写性能。
-
基于RDMA的通信失效:所有依赖RDMA协议的应用(如MPI、NVMe-oF、SR-IOV+RDMA)将无法正常工作,可能导致服务启动失败或降级运行。
(2)根据客户场景有什么建议
-
如果客户场景只涉及Web服务器、普通业务,也就是仅依赖标准TCP/IP通信,不使用RDMA的话,可以禁用,无影响。
-
如果客户场景涉及AI训练、HPC以及分布式存储等需要大量计算资源的高性能场景,不建议禁用。这些场景高度依赖 RoCE 提供的低延迟、高吞吐能力。禁用将严重影响性能,甚至导致业务不可用。应优先修复驱动问题,而非规避。