Почему уменьшение емкости под нагрузкой увеличит задержку на сервере?
В этом выступлении в Беркли на слайдах Джеффа Дина содержится следующая заметка, примерно треть пути к презентации:
Non-intuitive: remove capacity under load to improve latency (?!)
Интуиция, которая у меня есть, заключается в том, что меньшая нагрузка на коробку уменьшит задержку, но эта заметка заставляет задуматься об обратном, по крайней мере для Google. Почему это так?
1 ответ
Представьте себе две сборочные линии:
У одного есть две машины, каждая из которых выполняет половину работы. Каждая машина занимает около десяти минут. Таким образом, продукт выходит из очереди каждые десять минут, а среднестатистическому товару требуется двадцать минут, чтобы пройти через линию.
У другого двадцать машин, каждая из которых выполняет одну двадцатую часть работы. Каждая машина занимает около двух минут. Таким образом, продукт выходит из очереди каждые две минуты, а среднестатистическому товару требуется сорок минут, чтобы пройти через линию.
Вторая сборочная линия имеет пятикратную пропускную способность. Но это имеет двойную задержку.
Теперь рассмотрим, сломался ли средний компьютер за несколько секунд примерно в одной десятой части времени. Вторая сборочная линия увидит больше всплесков задержки, потому что у вас есть двадцать шансов попасть в нее.