楼主
首先我们知道,一个电梯大部分工作时间都是在把一楼的人载到任何楼,或者把任何楼的人载到一楼
我观察到多个电梯并不能显著加速把人载到一楼这个过程,而且几个电梯总是同时到达一楼非常奇怪。
但是很快就有一个很好的解释了。如果两个电梯,都在往下,一个楼层更低,一个楼层更高,楼层更低的电梯就一定会先遇到所有需要接客的楼层,停下来等待,而楼层更高的电梯则一路畅通,最终得到的结果就是所有的电梯齐头并进,每个需要接客的楼层都全停,非常低效。
原帖: linux.sb/topic/12816 · 共 3 楼 · 标题快照 2026-08-15 15:52:08
首先我们知道,一个电梯大部分工作时间都是在把一楼的人载到任何楼,或者把任何楼的人载到一楼
我观察到多个电梯并不能显著加速把人载到一楼这个过程,而且几个电梯总是同时到达一楼非常奇怪。
但是很快就有一个很好的解释了。如果两个电梯,都在往下,一个楼层更低,一个楼层更高,楼层更低的电梯就一定会先遇到所有需要接客的楼层,停下来等待,而楼层更高的电梯则一路畅通,最终得到的结果就是所有的电梯齐头并进,每个需要接客的楼层都全停,非常低效。
所以。。。
然后就没有然后了?
服务器负载均衡一开始也有这种问题“惊群效应”
在传统的服务器负载均衡中,有一种最简单的算法叫“最少连接数”和“最短响应时间”。
服务器A当前负载最低,负载均衡器把新任务派给了A。但在A处理这个任务的毫秒内,负载均衡器检测到A的响应依然很快,于是又把下一个极其相似的任务派给了A。
到最后的结果就是,所有的新请求都被灌给了那台“当前看起来最快”的服务器,导致这台服务器过载,而其他服务器虽然在空闲,却因为网络延迟或检测周期的滞后,完全没有任务。