Назад | Перейти на главную страницу

Почему уменьшение емкости под нагрузкой улучшит задержку на сервере?

В этот разговор в Беркли, Слайды Джеффа Дина содержат следующую заметку, примерно на трети всего времени презентации:

Non-intuitive: remove capacity under load to improve latency (?!)

У меня есть интуиция, что меньшая нагрузка на коробку уменьшит задержку, но из этого примечания кажется, что верно обратное, по крайней мере, для Google. Почему это так?

Представьте себе две сборочные линии:

У одного есть две машины, каждая из которых выполняет половину работы. Каждая машина занимает около десяти минут. Таким образом, товар сходит с конвейера каждые десять минут, а в среднем товар проходит через линию через двадцать минут.

В другом есть двадцать машин, каждая из которых выполняет одну двадцатую часть работы. Каждая машина занимает около двух минут. Таким образом, товар сходит с конвейера каждые две минуты, и в среднем товар проходит через линию через сорок минут.

Вторая сборочная линия имеет мощность в пять раз больше. Но у него вдвое большая задержка.

Теперь подумайте, выходит ли средняя машина из строя на несколько секунд примерно в одной десятой части времени. На второй сборочной линии будет больше всплесков задержки, потому что у вас есть двадцать шансов попасть в один.