算
推理集群规模一上来,网络问题比算力问题更先暴露。RoCEv2 把 RDMA 跑在以太网上,性能很好,但丢包和 PFC 死锁是两块最常见的暗礁。
一、先分清丢包发生在哪一层。训练任务里集合通信一慢,先看网卡计数器:是交换机端口丢包,还是接收端缓冲区溢出?如果是接收端来不及处理,调大接收缓冲区、开 ECN 标记,让发送端提前减速,比一味加带宽管用。只看带宽利用率会误判:链路没跑满也可能因为突发流量把队列打爆。
二、PFC 死锁要从拓扑上防。PFC 的本意是无损以太网,但环形拓扑里一张网卡反压可能一环传回来,最后整网僵住。我的做法是:叶脊拓扑避免 PFC 环路,交换机上把 PFC 和 ECN 配合着开,关键链路单独划优先级,别让存储流量和 RDMA 流量抢同一个优先级。
三、网卡选型看三点。第一是硬件卸载能力:RDMA、拥塞控制算法是不是网卡硬件做,CPU 软算在高并发下会先撑不住。第二是驱动和固件的成熟度,同一款网卡不同固件版本表现可能差很多,上线前先在小规模环境跑满 72 小时。第三是和交换机的互通性,PFC、ECN 参数两边要对齐,一边开了另一边没开等于没开。
四、定位工具链。网卡计数器、交换机端口统计、抓包三者对照着看:计数器告诉你丢在哪,抓包告诉你丢的是什么流量。只看一端很容易把网卡问题误判成 GPU 问题。
你们的推理集群有没有被网络拖过后腿?最后定位到的是网卡、交换机还是配置问题?
一、先分清丢包发生在哪一层。训练任务里集合通信一慢,先看网卡计数器:是交换机端口丢包,还是接收端缓冲区溢出?如果是接收端来不及处理,调大接收缓冲区、开 ECN 标记,让发送端提前减速,比一味加带宽管用。只看带宽利用率会误判:链路没跑满也可能因为突发流量把队列打爆。
二、PFC 死锁要从拓扑上防。PFC 的本意是无损以太网,但环形拓扑里一张网卡反压可能一环传回来,最后整网僵住。我的做法是:叶脊拓扑避免 PFC 环路,交换机上把 PFC 和 ECN 配合着开,关键链路单独划优先级,别让存储流量和 RDMA 流量抢同一个优先级。
三、网卡选型看三点。第一是硬件卸载能力:RDMA、拥塞控制算法是不是网卡硬件做,CPU 软算在高并发下会先撑不住。第二是驱动和固件的成熟度,同一款网卡不同固件版本表现可能差很多,上线前先在小规模环境跑满 72 小时。第三是和交换机的互通性,PFC、ECN 参数两边要对齐,一边开了另一边没开等于没开。
四、定位工具链。网卡计数器、交换机端口统计、抓包三者对照着看:计数器告诉你丢在哪,抓包告诉你丢的是什么流量。只看一端很容易把网卡问题误判成 GPU 问题。
你们的推理集群有没有被网络拖过后腿?最后定位到的是网卡、交换机还是配置问题?
