Latency
為什麼減少負載下的容量會改善伺服器的延遲?
在伯克利的這次演講中,Jeff Dean 的幻燈片包含以下註釋,大約在展示的三分之一處:
Non-intuitive: remove capacity under load to improve latency (?!)
我的直覺是,減少盒子上的負載會減少延遲,但這個註釋看起來恰恰相反,至少對Google來說是這樣。為什麼會這樣?
想像兩條裝配線:
一個人有兩台機器,每台機器都做一半的工作。每台機器大約需要十分鐘。因此,每十分鐘就有一個產品下線,而平均每件產品需要二十分鐘才能通過生產線。
另一個有二十台機器,每台機器完成二十分之一的工作。每台機器大約需要兩分鐘。因此,每兩分鐘就有一個產品下線,而平均每件產品需要四十分鐘才能通過生產線。
第二條裝配線的產能是原來的五倍。但它有兩倍的延遲。
現在考慮一下普通機器是否有大約十分之一的時間在幾秒鐘內發生故障。第二條裝配線將看到更多的延遲峰值,因為您有 20 次機會達到一個。