Persistent HTTP connections && Pipelining

MZ zuborg at advancedhosters.com
Wed Nov 14 13:09:31 MSK 2007


В ср, 14/11/2007 в 10:12 +0300, Igor Sysoev пишет:
> Persistent соединения с бэкендом планируются, но реализовать их на данный
> момент сложно, так как необходимо обрабатывать chunked ответы бэкенда.
> Большого прироста производительности ожидать от этого не стоит,
> за исключением случаев, когда бэкенд на виндах или джаве.
Не сказал бы что не стоит. Оверхед не только на установку и accept
соединения (а чем больше очередь входящих соединений тем надо больше
ресурсов на её обработку). Но и на поиск или инициализацию свободного
воркера куда можно было бы пробросить соединение, освобождение воркера
после отдачи контента, ... - это все тоже работа, причем большая чем
просто установка соединения.

> Поддержка pipelined запросов к бэкенду существенно усложнит проксирование
> и бессмысленна на данный момент - по умолчанию pipelining использует
> только Опера. Firefox нужно специально настраивать, а MSIE, по-моему,
> не поддерживает вообще.
А при чем тут использование pipeline браузером ? Мы ж pipeline к бекенду
обсуждаем. Хотя обсуждать тут особо нечего - Anton Yuzhaninov
<citrin at citrin.ru> привел пример, когда использование pipeline
увеличивает задержку при неудачном стечении обстоятельств.

А вот если Опера присылает пачку pipelined-запросов, nginx их
раскидывает по разным бекендам - это нормальная схема, только придется
держать в буфере ответы на более поздные запросы, пока не уйдут в
pipeline ответы на все предыдущие запросы - fifo. Задо задержка
получения ответов может значительно снизиться, за счет паралельной
генерации контента, но никогда не увеличится (разве что какой-то бекенд
окажется перегружен, но тут надо менять текущю схему балансировки, я уже
когда-то писал).


More information about the nginx-ru mailing list