Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Persistent HTTP connections && Pipelining
В ср, 14/11/2007 в 10:12 +0300, Igor Sysoev пишет:
> Persistent соединения с бэкендом планируются, но реализовать их на данный
> момент сложно, так как необходимо обрабатывать chunked ответы бэкенда.
> Большого прироста производительности ожидать от этого не стоит,
> за исключением случаев, когда бэкенд на виндах или джаве.
Не сказал бы что не стоит. Оверхед не только на установку и accept
соединения (а чем больше очередь входящих соединений тем надо больше
ресурсов на её обработку). Но и на поиск или инициализацию свободного
воркера куда можно было бы пробросить соединение, освобождение воркера
после отдачи контента, ... - это все тоже работа, причем большая чем
просто установка соединения.
> Поддержка pipelined запросов к бэкенду существенно усложнит проксирование
> и бессмысленна на данный момент - по умолчанию pipelining использует
> только Опера. Firefox нужно специально настраивать, а MSIE, по-моему,
> не поддерживает вообще.
А при чем тут использование pipeline браузером ? Мы ж pipeline к бекенду
обсуждаем. Хотя обсуждать тут особо нечего - Anton Yuzhaninov
<citrin@xxxxxxxxx> привел пример, когда использование pipeline
увеличивает задержку при неудачном стечении обстоятельств.
А вот если Опера присылает пачку pipelined-запросов, nginx их
раскидывает по разным бекендам - это нормальная схема, только придется
держать в буфере ответы на более поздные запросы, пока не уйдут в
pipeline ответы на все предыдущие запросы - fifo. Задо задержка
получения ответов может значительно снизиться, за счет паралельной
генерации контента, но никогда не увеличится (разве что какой-то бекенд
окажется перегружен, но тут надо менять текущю схему балансировки, я уже
когда-то писал).
|