对比一下 2016 年前住宅小区和高科技产业园区的容积率不难发现,住宅容积率远低于产业园区,换句话说,住宅区让人更舒适,而产业园区则过于拥挤。但这是故意的,因为产业园区本就要高度集约化用地以达到最大的土地利用率,只要楼不塌,别的随他去。体验过深圳南山区高新南六道的,该知道我在说什么。
云数据中心有个和产业园区容积率类似的概念,收敛比,设计者希望在资源利用率和时延体验之间获得平衡,既不太浪费,又不过度拥塞。但人们倾向于更大的收敛比,因为人们倾向于一开始花最少的钱,然后倒逼软件层面去做优化,在大收敛比下,拥塞控制交给了算法。
不幸的是守恒律是避不开的,在带宽资源上省了钱,就要花钱雇人做拥塞控制,悲哀在于花大价钱却雇佣了一群经理,他们并没有能力去做对任何事。
强调过多次,缓解网络拥塞的手段就两个,资源扩容,错峰通过瓶颈。
加设备拉线就能解决的事,非要花更多钱和更多研发时间,到头来解决不了问题还引入更多问题,不是傻就是故意的。至于错峰通过也不难,打破拓扑的对称性就行,不公平的尽头是公平。
为云网络做这那的工人和经理在产业园区蹉跎着岁月。问他们每天等什么的时间最多最烦,停车,找厕所,等电梯,食堂排队,差不多就这些。楼太高意味着厕所,食堂不能平铺,电梯是必经之路,大容积率意味着车位紧张。
每个工人和经理每天经历的这些几乎就是云数据中心每个字节的复刻。
而他们所采取的策略与他们对云数据中心的字节所采取的拥塞控制策略如出一辙,他们在同一时间涌向同一个地方,十二点准时吃饭,早十分钟他们怕经理看到,晚半小时他们怕只剩残羹冷炙,于是电梯,食堂餐位就成了拥塞点,他们连自己的 incast 都无能为力,又如何设计出解决数据中心 incast 的算法。
每座越发高耸的写字楼就是机架上越发厚重的服务器,每个楼层就是服务器中的一个虚拟机,每个工人或经理就是虚拟机中每个业务所传输的每一个字节或一系列字节,但即使经理穿再贵的皮鞋也不能优先踏进共享电梯,除非他花钱买下一部电梯为他专用,守恒律再次起作用,dpdk 延迟低,但它要专用 cpu。
高科技产业园区和云数据中心几乎相同的问题背后是高度集约化的资源利用率的需求,资本在作祟。正如高楼林立是否舒适要看容积率一样,越来越牛逼的服务器之间传输是否顺畅要看收敛比。
开发商和物业喜欢越高收益越大的摩天大楼,却排斥在高楼下多修一条路多开一家店,云数据中心的经理们自然也拥抱高密度昂贵芯片堆砌的板卡,却排斥多拉一根网线多部署一台交换机。
为解决 incast 问题,把现有网线修剪到参差不齐纯属把戏,正规的做法在软件上可以引入随机,在硬件上可以改变拓扑,像霍马(homa)那样第一手数据赌一把梭哈出去,此后根据反馈的配额发送属实昂贵,如果不用它的一整套方案,则很难落地,不简单的东西自然不美。但这种事我也不是没干过,我在他们犹豫不决的时候一马当先去吃饭,然后端着碗告诉他们人不多,赶紧来。
1980 年代的老工厂非常棒,就算电影制片厂之类不需重设备的厂子也没有写字楼,容积率足够低,作为工人子弟,儿时经常出入各类钢厂,电厂,化工厂,这些工厂的食堂都不在厂区中心位置,而处在边缘,不同车间的工人们步行抵达食堂的时间不同,这就促成了错峰吃饭,避免了排队。也许对离得最远的车间不公平,但相比一窝蜂带来的糟糕体验,他们也并不抱怨(母亲所在的车间就是离食堂比较远的)。
21 世纪 20 年代的现实中,我们终究避免不了在产业园区高大上的写字楼里等电梯,但总有人耍小聪明,试图证明自己的判断比固定等一部电梯更快到达地面,但结局大概率比老老实实等待电梯浪费更多时间。如果你接触不到底层资源,最好不要自行设计算法,纯炫技者除外。
…
但对于远距离大交通,相当于广域网的场景,堵个一时半会儿也就没人在意。简单算一笔账,在一个园区食堂堵 10 分钟可能对于吃饭只需要 5 分钟而言是个接受不了的等待,但在高速公路上堵 20 分钟对于完全畅通都需要 20 小时的远途而言,就是洒洒水了。
如何平衡端到端时间比例的预期,什么是在乎的,什么不该在乎,这是拥塞控制的关键。而现在他们在做什么,他们只是在安装一部更装下更多胖子的电梯而已,更多的胖子同时到达已经拥挤不堪的食堂。
浙江温州皮鞋湿,下雨进水不会胖。