前面用 aimd 系统分析了交换机 buffer 需求量随流数量增加而减少,今天从更一般的角度继续分析这事。
将交换机建模为一个 m/m/1 排队系统,多流场景下它就会变成一个 m/g/1 排队系统,而这事比前面的 aimd 系统分析更容易推导。
m/m/1 系统中的 n 条流相当于 n 个参数为 λ 的泊松过程的叠加,如果带宽资源恰好均分,结果就是一个参数为 n(λ/n) = λ 的泊松过程,看起来没有什么变化,但这是事实吗?
统计复用的波动和稳定性,背后就是大数定律和中心极限定理。先从大数定律给出直感觉。
设 X₁,X₂,X₃,…,Xₙ 为来自 n 个泊松过程的随机变量,它们具有相同的期望值 λ/n 和方差 λ/n。这些随机变量的平均值为 Sₙ = (X₁ + X₂ + X₃ + … + Xₙ) / n,根据大数定律,对于任意 ε > 0,有 lim(n→∞) P(|Sₙ - λ/n| ≥ ε) = 0,所以 Sₙ 趋向于固定值 λ/n,n 非常非常大时,叠加效果 nSₙ 就等于 λ,不再波动,当 n 虽非无穷但也非常大时,叠加效果 nSₙ 则围绕在 λ 周围微弱波动,我们将 buffer 作为吸收统计波动的工具,波动越微弱,所需 buffer 就越小。
现在中心极限定理出来解释一下为什么叠加后参数依然为 λ 的泊松过程却带来了巨大变化,极大减弱了波动。
当 n 非常非常大时,泊松分布叠加后将越来越像正态分布,随之 m/m/1 系统也逐渐变成 m/g/1 系统,而对于 m/g/1 系统,计算排队时延,队列容量的公式与 m/m/1 的泊松分布假设完全不同,此处不赘述。
来定性分析一下中心极限定理的结论。设 X₁,X₂,X₃,…,Xₙ 为来自 λ/n 泊松分布的随机变量,n 趋向 ∞ 时正态分布的期望和方差分别为 λ/n 和 λ2/n3,将 n 个这样的正态分布叠加依然是正态分布,期望和方差分别为 nλ/n = λ,nλ2/n3 = λ2/n2,其标准差为 λ/n,与 n 成反比。由此可见,从中心极限定理得到了和大数定律中得到的一致的结论,即随着 n 增加,到达过程的变异性将降低,波动性减少,对 buffer 需求减少。
浙江温州皮鞋湿,下雨进水不会胖。