在在伯克利的这次演讲,Jeff Dean 的幻灯片在演示进行到大约三分之一处包含以下注释:
Non-intuitive: remove capacity under load to improve latency (?!)
我的直觉是,减少机器上的负载可以减少延迟,但这篇文章却让情况看起来恰恰相反,至少对谷歌来说是这样。为什么会这样呢?
答案1
想象一下两条装配线:
一家有两台机器,每台机器完成一半的工作。每台机器大约需要十分钟。因此每十分钟就有一件产品下线,平均每件产品需要二十分钟才能通过生产线。
另一家工厂有 20 台机器,每台机器只完成二十分之一的工作。每台机器大约需要两分钟。因此,每两分钟就有一件产品下线,平均每件产品需要四十分钟才能通过生产线。
第二条装配线的产能是原来的五倍,但等待时间却是原来的两倍。
现在考虑一下,如果普通机器在大约十分之一的时间内出现几秒钟的故障。第二条装配线将出现更多的延迟峰值,因为您有二十次机会出现一次。