ПРОЕКТЫ 


  АРХИВ 


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]: limit_rate странно себя ведёт.



On Sat, 20 Jan 2007, Igor Sysoev wrote:

On Sat, 20 Jan 2007, Михаил Монашёв wrote:

При  имитации  одного  из  выше описанных ботов контент как-то странно
отдаётся:  сначала  каждую  секунду  приходит 100 байт, потом пауза на
секунду-две,  потом  ещё  несколько  пачек  по  100 байт и потом всё -
ничего не отдаётся, или же наступает огромная пауза и потом опять пару
пачек приходит. Т.е. происходят какие-то непонятные огромные таймауты.

Соединение провисело и минут через 5-10 выдало
Connection closed by foreign host.
на середине странички.

Так и должно быть?

IS> Нет, если ответ от бэкенда поступает равномерно или отдаётся статика, то
IS> должно уходить пакетами по 100 байт раз в секунду.

Отдаётся динамика. Ответ от бэкенда поступает быстро. Для сравнения
сделай тот же запрос, но без "User-Agent: Jakarta".

Есть предположение, что виноват "tcp_nopush  on". Можно его выключить,
на 6-ке он уже не так нужен.

Скорее всего, дело не столько в tcp_nopush, сколько в sendfile.
Можно попробовать прилагаемый патч и такую конфигурацию:

   if (...) {
       limit_rate  100;
       sendfile    off;
   }


Игорь Сысоев
http://sysoev.ru
Index: src/http/ngx_http_core_module.c
===================================================================
--- src/http/ngx_http_core_module.c     (revision 387)
+++ src/http/ngx_http_core_module.c     (working copy)
@@ -275,7 +275,8 @@
       NULL },
 
     { ngx_string("sendfile"),
-      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
+      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
+                        |NGX_CONF_TAKE1,
       ngx_conf_set_flag_slot,
       NGX_HTTP_LOC_CONF_OFFSET,
       offsetof(ngx_http_core_loc_conf_t, sendfile),


 




Copyright © Lexa Software, 1996-2009.