DCN 与 WAN 的不同优化目标
对比广域网,传统 DCN,GPU 算力网络等,其各方面都存在差异,以至于它们甚至没有任何共通之处,以至于不能统一分析,以至于从事这些不同网络技术工作的工科生隔行如隔山。
就抓时间不变量,就能自然推导出什么网络适用什么技术,包括但不限于不同的拓扑,路由,协议,以及端到端控制不是不同网络的缘由,而是自然而然的结果。
所以叠加各种拥塞控制算法无异于雪上加霜,弄巧成拙,不是网络优化没有意义,而是大多数人方向是错的,为什么推理比训练抖动,如何解决,不是叠加几个策略就开箱即用的,包括 AI Infra 在内的所有网络优化,方向错,步步错。
所有的网络传输都可抽象成一个公式:
Dtotal=Dtrans+Dprop+Dproc+Dqueue\text{D}_{\text{total}}=\text{D}_{\text{trans}}+\text{D}_{\text{prop}}+\text{D}_{\text{proc}}+\text{D}_{\text{queue}}Dtotal=Dtrans+Dprop+Dproc+Dqueue
等号右分别代表发送时延,传播时延,协议栈处理时延,排队时延。以下分析,为保持讨论的核心不偏离主题太远,我直接引用结论,不再做证明。
统计学中的一句真话,规模差异越大,均值越偏离中位数,发送时延,处理时延分别由网卡和协议栈引入,同类交互系统的网卡,协议栈差异不大,至少没有规模化差异,而传播时延更趋于固定的 Dprop=d0.66⋅c\text{D}_{\text{prop}}=\dfrac{d}{0.66\cdot c}Dprop=0.66⋅cd,于是要侧重看 Dqueue\text{D}_{\text{queue}}Dqueue.
用 Dqueue\text{D}_{\text{queue}}Dqueue 方差占总延迟的权重衡量对抖动的敏感度:
Sensitivity∝Var(Dqueue)Dtotal\text{Sensitivity}\propto\dfrac{Var(\text{D}_{\text{queue}})}{\text{D}_{\text{total}}}Sensitivity∝DtotalVar(Dqueue)
排队时延的规模化差异正由 Var(Dqueue)Var(\text{D}_{\text{queue}})Var(Dqueue) 表示。
先看广域网情形,由于 Dprop=d0.66⋅c\text{D}_{\text{prop}}=\dfrac{d}{0.66\cdot c}Dprop=0.66⋅cd 中的 ddd 非常大,即使在 CDN 场景,Dprop\text{D}_{\text{prop}}Dprop 也不可小觑,由于 Dprop≈Dqueue\text{D}_{\text{prop}}\approx\text{D}_{\text{queue}}Dprop≈Dqueue,Var(Dqueue)Var(\text{D}_{\text{queue}})Var(Dqueue) 被稀释。
WAN 反馈周期 base 值受 ddd 决定,主机很难在一个 RTT 内对统计波动做反应,WAN 传输本质上是一个应对宏观统计波动的自时钟系统,其锯齿波震荡正是为了维持动态稳定,Sensitivity\text{Sensitivity}Sensitivity 本身也是一个规律的,稳定的锯齿波。
但在 DCN,Dprop≪Dqueue\text{D}_{\text{prop}}\ll\text{D}_{\text{queue}}Dprop≪Dqueue,Var(Dqueue)Var(\text{D}_{\text{queue}})Var(Dqueue) 显现:
- 大象流影响;
- incast 影响;
先看大象流。在 DCN,流的持续时间服从帕累托分布,其累积分布函数为:
F(t)=1−(tθ)−α,(t≥θ)F(t)=1−(\dfrac{t}{\theta})^{−α},(t\ge\theta)F(t)=1−(θt)−α,(t≥θ)
那么,流至少持续到时间 ttt 的概率:
S(t)=1−F(t)=(tθ)−α,(t≥θ)S(t)=1-F(t)=(\dfrac{t}{\theta})^{−α},(t\ge\theta)S(t)=1−F(t)=(θt)−α,(t≥θ)
这意味着即使流已经存活了很长时间,它继续存活的概率依然不可忽略。正是由于这种厚尾特性,导致网络中会不可避免地出现极少数存活时间极长的流。
Var(Dqueue)Var(\text{D}_{\text{queue}})Var(Dqueue) 因大象流的存在被急剧放大,导致敏感度极高它们对 buffer 的占据和释放(AIMD,…)便是拉高排队时延 P99 的根源。
再看 incast。假设 Incast 突发包含 NNN 个数据包,这些包的排队时延构成了一个伪等差数列 0,Lμ,2Lμ,...(n−1)Lμ0,\dfrac{L}{\mu},\dfrac{2L}{\mu},...\dfrac{(n-1)L}{\mu}0,μL,μ2L,...μ(n−1)L,其中 LLL 为报文长度,μ\muμ 为带宽,那么离散均匀分布的方差公式,这 NNN 个包的排队时延方差为:
Var(Dqueue)=N2−112(Lμ)2Var(\text{D}_{\text{queue}})=\dfrac{N^2-1}{12}(\dfrac{L}{\mu})^2Var(Dqueue)=12N2−1(μL)2
incast 导致的排队时延方差与扇入规模 NNN 的平方成正比,即 O(N2)O(N^2)O(N2).由于分子会极大,而分母 Dtotal\text{D}_{\text{total}}Dtotal 又极小,Sensitivity\text{Sensitivity}Sensitivity 在 incast 时会飙升。
由于拥塞控制的滞后本质,incast 无法控制,当主机进行反馈时,incast 或已结束。
由于 Dqueue\text{D}_{\text{queue}}Dqueue 占比巨大且敏感,P99 就是 DCN 的核心指标,从上述分析可明确看到,在 DCN,大象流和 incast 引入的规模化差异是 P99 抖动的根源。问题的核心在于,你根本无法解决它,这就陷入了不可知论。
被经理开除之前,我想在发送端引入小随机退避,将原本同步的 incast 突发打散,通过时间平铺,瞬时到达率被大幅拉平,等效降低同一时刻参与排队的节点数 NNN,在数学上极大缓解队列压力,避免 VarVarVar 爆炸,甚至可将光纤修剪成不等长来等效,结果被喷。
但且慢,既然 Dqueue\text{D}_{\text{queue}}Dqueue 占比巨大,那肯定 Dprop\text{D}_{\text{prop}}Dprop 占比巨小,既然 Dprop\text{D}_{\text{prop}}Dprop 占比小放大了抖动带来了问题,正向利用,那它一定就可以解决问题,答案就是随机 spraying.
通过前面的分析,我们知道,DCN 的小 ddd 尺度,绕行的非 SPF 路径引入的额外传播时延相比排队抖动,非常低。也就是说,ddd 很小的网络中,分化 Dqueue\text{D}_{\text{queue}}Dqueue 远比 SPF 重要,这儿有个交易,主动用非 SPF 的最大流换更低的 Var(Dqueue)Var(\text{D}_{\text{queue}})Var(Dqueue).
这就是我认为扁平化随机网络是 DCN 救星的原因,它可能是唯一正确的 DCN 拓扑。随机的原因很简单,但凡被有意规划的路由,一定是信息的综合,则带来流量的聚集,这便是新的潜在 incast,随机就是把确定性交给统计。
反之,在 WAN 场景,即使是经理在长江里也掀不起大浪,Var(Dqueue)Var(\text{D}_{\text{queue}})Var(Dqueue) 被大锯齿波吞噬,平均吞吐则更重要,而 SPF 则确保了更小的 Dtotal\text{D}_{\text{total}}Dtotal.
最后来量化比较一下。
先给出 P99 相对抬升占比的定量公式,它来衡量网络对抖动的关注重要程度:
η=ΔD99μD=z99⋅σqDp+μq\eta=\dfrac{\Delta D_{99}}{\mu_D}=\dfrac{z_{99}\cdot\sigma_q}{D_p+\mu_q}η=μDΔD99=Dp+μqz99⋅σq
其中 z99z_{99}z99 为标准正态分布 99 分位数系数≈2.236\approx 2.236≈2.236,σq\sigma_qσq 为排队时延标准差,μp\mu_pμp 为传播时延,μq\mu_qμq 为排队时延均值,变异系数 CV=σqμqCV=\dfrac{\sigma_q}{\mu_q}CV=μqσq 正是上面的 Sensitivity\text{Sensitivity}Sensitivity 度量,由于我们要评价 P99 的重要性,故取 CV=1CV=1CV=1,即 DCN,WAN 的流量规模差异,突发程度接近。
对比三种典型网络:
- DCN,Dp=40μs,μq=50μsD_p=40\mu s,\mu_q=50\mu sDp=40μs,μq=50μs,于是 η=2.236×5040+50=1.242\eta=\dfrac{2.236\times 50}{40+50}=1.242η=40+502.236×50=1.242;
- 国内跨城 WAN,Dp=55000μs,μq=5000μsD_p=55000\mu s,\mu_q=5000\mu sDp=55000μs,μq=5000μs,η=2.236×500055000+5000=0.199\eta=\dfrac{2.236\times 5000}{55000+5000}=0.199η=55000+50002.236×5000=0.199;
- 洲际跨洋 WAN,Dp=200000μs,μq=15000μsD_p=200000\mu s,\mu_q=15000\mu sDp=200000μs,μq=15000μs,η=2.236×15000200000+15000=0.156\eta=\dfrac{2.236\times 15000}{200000+15000}=0.156η=200000+150002.236×15000=0.156;
这你就知道在什么网络中优化什么指标了。
对于 DCN,若采用随机 spraying,设度数 D=16D=16D=16,则实际不相交独立路径数≈0.98D\approx 0.98D≈0.98D,σq′=σqD\sigma'_q=\dfrac{\sigma_q}{D}σq′=Dσq,由于多路径随机,引入路径传播抖动 ξ\xiξ,因此:
σ′=(σqD)2+σξ2\sigma'=\sqrt{(\dfrac{\sigma_q}{D})^2+\sigma_\xi^2}σ′=(Dσq)2+σξ2
现在看 σq>σ′\sigma_q\gt\sigma'σq>σ′ 是不是几乎恒成立,只要它恒成立,就可以随机 spraying 替代 SPF。
欲证之,整理成:
σq2(1−1D2)>σξ⋯(1)\sigma_q^2(1-\dfrac{1}{D^2})\gt\sigma_\xi\quad \cdots(1)σq2(1−D21)>σξ⋯(1)
由于机房布线极其规整且距离短,但 buffer 至少要 BDP 且带宽高,因此 σq≫σξ\sigma_q\gg\sigma_\xiσq≫σξ,对于典型的 D=24,16,8,4D=24,16,8,4D=24,16,8,4,(1)式均成立。从 (1) 式也可以看出,DDD 越大,spraying 越安全,即使 D=2D=2D=2,也能化解大部分的 incast。
或者,你至少要用 packet-based,hash-based ECMP,松散 ECMP.
如果 DCN 死磕 SPF,其 σq\sigma_qσq 完全正比于流量的 buffer 占用情况,大象流和 incast 就无解,再好的拥塞控制算法也无解,同样的大象流,突发若是发生在 WAN,则结论完全相反,buffer 终会被 AIMD 消解,而 σξ\sigma_\xiσξ 将永存,这也是我反对 WAN 多路径叠加带宽的原因。
浙江温州皮鞋湿,下雨进水不会胖。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)