ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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



On Wed, Nov 14, 2007 at 12:09:31PM +0200, MZ wrote:

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

Это где происходит "поиск или инициализацию свободного воркера" ?
В стандартном Апаче свободный воркер сам accept()ит соединение.
О какой работе по инициализации и освобожению идёт речь ?

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

А при том что,
---------
В случае пайплайнинга, ngnix будет проксировать каждый реквест в новом
соединении к бекенду?
---------

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

nginx обрабатывает pipelining последовательно. И я не вижу никакого
смысла добавлять в обработку pipelining'а искусственный интеллект -
за четыре года его существования в nginx'е его поддержка со стороны
браузеров не изменилась (та же Опера + Файрвокс, выключенный по дефолту).

А по поводу схемы балансировки по времени ответа очень хорошо сказал
на РИТе Олег Оболенский из Яндекса - "пятисотки отдаются офигенно быстро".


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.