Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Persistent HTTP connections && Pipelining
Здравствуйте, Andrew!
Tuesday, November 13, 2007, 22:29:33, you wrote:
AS> задача nginx как можно быстрее освободить процесс backend
AS> для следующих запросов, keepalive совсем этому не способствует.
с точностью до наоборот.
Persistent HTTP connections как раз и способствуют
более быстрой обработке backend`ом запросов, потому
что не нужно будет для обработки следующего запроса
каждый раз заново устанавливать tcp-соединение.
убирается лишний overhead, экономятся ресурсы.
Pipelining - это способ еще больше ускорить обработку
запросов, потому что клиент может отправить несколько
запросов "пачкой" не дожидаясь завершения обработки
предыдущего запроса перед отправкой следующего,
тогда backend вообще не будет простаивать
в ожидании нового запроса от frontend`а
после обработки предыдущего.
в результате - [значительно] ускоряется
обработка HTTP запросов вебсервером.
более подробная информация: RFC2616
8.1 Persistent Connections
8.1.2.2 Pipelining
HTTP/1.1 расчитан на работу в режиме persistent connections
не только между client <=> frontend, но и frontend <=> backend.
8.1.4 Practical Considerations
...
Clients that use persistent connections SHOULD limit the number of
simultaneous connections that they maintain to a given server. A
single-user client SHOULD NOT maintain more than 2 connections with
any server or proxy. A proxy SHOULD use up to 2*N connections to
another server or proxy, where N is the number of simultaneously
active users. These guidelines are intended to improve HTTP response
times and avoid congestion.
...
насколько я понимаю, использование "Persistent HTTP connections && Pipelining"
между frontend`ом и backend`ом даст [значительное] ускорение работы вебсервера
не только в том случае когда есть всего один backend, но и когда их несколько.
--
Best regards,
Gena mailto:makhomed@xxxxxxxxxxxxxx
|