ПРОЕКТЫ 


  АРХИВ 


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[2]: keepalive от nginx к бакэнду. запрос фичи.



Hello sjsoft,

еще раз: keepalive тут не причем и вам не поможет. вы его не правильно 
понимаете.
snr> Здравствуйте, nginx-ru.

snr> Уточню моменты, которые мне показались не важными в первом письме.

snr> Господа товарищи, столкнулся  с не большим багом.
snr> 1) стоит nginx версия 3.49
snr> 2) он настроен на отдачу статики и проксирование к бакэнду.
snr> 3) В качестве бакэнда стоит сервер на тредовой моделе. Назовем его 
"back-serv".

snr> Теперь речь идет не о NGINX а о "back-serv".

snr> Проблема в следующем, как я понимаю, keep-alive сооединения от nginx до
snr> backend("back-serv") не устанавливаются(где в рассылке встречал, что
snr> connection: всегда close).
snr> Если один пользователь послал к примеру одновременно 7-10 запросов(к
snr> NGINX на keep-alive от браузера юзера до NGINX), NGINX создает 7-10
snr> запросов к backend("back-serv") не на одном соединение, а как
snr> отдельные соединения каждый.
snr> В этом случае, у backend("back-serv") все треды(пул из 10-ти тредов), 
забиваются, выполнением схожей ф-и для этого
snr> пользователя(например просмотр одной динамической таблицы, которая
snr> строится быстро, но всеже использует общиее ресурсы, используя
snr> разделение блокирование(mutex) ). Теперь, когда треды по очереди начинают 
блочить ресурс по
snr> пути работы ф-ии, они начинают тормозить(ожидая освобождения ресурса.)...
snr> Создается толкучка в борьбе за ресуры, сервер практически подвисает в 
ожидании.

snr> Мое видиние решения этой проблемы:
snr>     Сделать поддержку keep-alive соединений от NGINX до ПРОКСИРУЕМЫХ
snr>     backend'ов. В этом случае, nginx бы не открывал несколько
snr>     соединений, а довольствовался бы одним, по которому и пересылал бы
snr>     запросы от браузера одного пользователя к backend(в один тред,
snr>     к которому он бы подсоединялся).

snr> Также было бы не плохо, если бы NGINX умел собирать, соединения без
snr> keep-alive (одного пользователя, соединения с одного ip или сети) и
snr> соединясь с back-end устанавливать keep-alive соединение, передавать
snr> эти запросы по нему. Предвижу простой ответ, мол это все ненужною.

snr> какие будут идеи?

snr> Игорь, планируете ли вы когда либо, сделать настраивоемо keep-alive
snr> между nginx и backend'ами ?




-- 
Best regards,
 Andrew                            mailto:sitnikov@xxxxxxxxxx




 




Copyright © Lexa Software, 1996-2009.