Постоянные обрывы коннектов

Maxim Dounin mdounin at mdounin.ru
Mon Jul 6 15:52:53 MSD 2009


Hello!

On Mon, Jul 06, 2009 at 12:02:36PM +0200, Anton Kuznetsov wrote:

> Это и есть debug log проблемы с limit_req ... nodelay.

Нет, и это очевидно из debug log'а.  Если бы это был debug log с 
nodelay - там не было бы строк про "delaying request".

> Я же написал сверху строчки конфига:
> 
> tcp_nodelay    on;
> limit_req_zone $binary_remote_addr  zone=avi:10m   rate=5r/m;
> ....
> location ~* ^/film/.*\.(avi|mpg|gif|jpg)$ {
>           limit_req   zone=avi  burst=5;
> ....

Для того чтобы был limit_req ... nodealy - должно быть написано 
limit_req  ...  nodelay.  А не просто limit_req.  Логично?

> 
> Сейчас рискну убрать limit_req.
> Хм, работает сильно лучше. :)) Но все равно ситуация далека от совершенства.
> 
> 
> Момент первый:
> 
> access.log:
> 220.231.30.195 - - [06/Jul/2009:13:42:56 +0400] GET /film/zerkalo.avi
> HTTP/1.1 XX 206 92546
> 
> debug.log:
> 009/07/06 13:42:53 [debug] 62060#0: *117 accept: 220.231.30.195 fd:144

[...]

> 2009/07/06 13:42:53 [debug] 62060#0: *117 http header: "Range:
> bytes=471718979-471811524"

[...]

> 2009/07/06 13:43:01 [debug] 62060#0: *117 free: 0829E200, unused: 56
> 2009/07/06 13:43:14 [error] 62100#0: *117 limiting connections by zone
> "one", client: 95.32.50.65, server: film.arjlover.net, request: "GET
> /film/vyzyvaem.ogon.na.sebja.2.avi HTTP/1.0", host: "ivanka.arjlover.net",
> referrer: "http://film.arjlover.net/film/"
> 
> Последняя строчка непонятно как попала в этот grep по 117
> Все строчки про limit_req - убраны.

Последняя строчка - это limit_conn.  В целом нормальный такой 
range запрос, отработал штатно, вернул в точности то что 
запросили.

> Второй момент:
> 
> 77.51.208.193 - - [06/Jul/2009:13:42:57 +0400] GET
> /film/zastava.ilicha.1.avi HTTP/1.0 ZZ 206 148119
> 
> 2009/07/06 13:42:57 [info] 62062#0: *291 kevent() reported about an closed
> connection (54: Connection reset by peer) while sending response to client,
> client: 77.51.208.193, server: film.arjlover.net, request: "GET
> /film/zastava.ilicha.1.avi HTTP/1.0", host: "ivanka.arjlover.net", referrer:
> "http://film.arjlover.net/info/zastava.ilicha.1.avi.html"
> 
> Сетевые проблемы у клиента?

Или закрыл браузер/отменил закачку.

Maxim Dounin

> 
> 
> Антон.
> 
> 
> 2009/7/5 Maxim Dounin <mdounin at mdounin.ru>
> 
> > Hello!
> >
> > On Sun, Jul 05, 2009 at 05:59:48PM +0200, Anton Kuznetsov wrote:
> >
> > > Гораздо информативнее чем прошлый ответ. ;)
> > >
> > > Ну что ж, пересобрал, перезапустил, не просто мне это было... В
> > результате
> > > 100мб меньше чем за минуту, не знаю как это предлагалось сделать "в
> > студию",
> > > попробую кусками.
> > >
> > > Это grep по *6106
> >
> > [...]
> >
> > > 2009/07/05 19:25:23 [debug] 11555#0: *6106 limit_req: -2 4.375
> > > 2009/07/05 19:25:23 [warn] 11555#0: *6106 delaying request, excess:
> > 4.375,
> > > by zone "avi", client: 93.73.181.151, server: film.arjlover.net,
> > request:
> > > "GET /film/devchata.cd1.avi HTTP/1.1", host: "ivanka.arjlover.net",
> > > referrer: "http://ivanka.arjlover.net/film"
> > > 2009/07/05 19:25:23 [debug] 11555#0: *6106 event timer add: 18:
> > > 4375:1267011892
> > > 2009/07/05 19:25:27 [debug] 11555#0: *6106 event timer del: 18:
> > 1267011892
> > > 2009/07/05 19:25:27 [debug] 11555#0: *6106 http run request:
> > > "/film/devchata.cd1.avi?"
> > > 2009/07/05 19:25:27 [debug] 11555#0: *6106 limit_req delay
> >
> > Используется limit_req с задержкой, патч не наложен.
> >
> > [...]
> >
> > > 2009/07/05 19:25:28 [info] 11555#0: *6106 client timed out (60: Operation
> > > timed out) while sending response to client, client: 93.73.181.151,
> > server:
> > > film.arjlover.net, request: "GET /film/devchata.cd1.avi HTTP/1.1", host:
> > "
> > > ivanka.arjlover.net", referrer: "http://ivanka.arjlover.net/film"
> >
> > А это - закономерное следствие, о котором вам говорили уже не раз.  Решение
> > с тех пор не поменялось.
> >
> > Вы помнится били себя пяткой в грудь, утверждая что ваша проблема
> > воспроизводится без limit_req.  И вам было предложено прислать
> > debug log проблемы без limit_req или с limit_req ... nodelay.  Мы
> > всё ещё с интересом ждём обещанного debug log'а.
> >
> > Maxim Dounin
> >
> > [...]
> >
> > > > > > > > On Fri, Apr 03, 2009 at 01:05:50PM +0200, Anton Kuznetsov
> > wrote:
> > > > > > > >
> > > > > > > > > А мне что делать? Мою проблему как патчить? :)
> > > > > > > >
> > > > > > > > Вам уже было сказано что именно вам делать - воспроизвести
> > > > > > > > проблему без limit_req или с limit_req .. nodelay, после чего
> > > > > > > > приносить конфиг и debug log.
> > > > > > > >
> > > > > > > > Maxim Dounin
> > > > > > > >
> > > > > > > > >
> > > > > > > > > 2009/4/3 Maxim Dounin <mdounin at mdounin.ru>
> > > > > > > > >
> > > > > > > > > > Hello!
> > > > > > > > > >
> > > > > > > > > > On Fri, Apr 03, 2009 at 11:03:19AM +0200, Sergey Bondari
> > wrote:
> > > > > > > > > >
> > > > > > > > > > > Hello Maxim,
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > MD> Если используется limit_req - надо либо накатить патч
> > > > > > (пробегал
> > > > > > > > > > > MD> тут давеча), либо использовать limit_req ... nodelay.
> > > > > > > > > > > Патч кстати проблему решил. Один вопрос - этот патч
> > временная
> > > > > > > > заплатка
> > > > > > > > > > > от вас или уже включена в транк? В смысле каждый раз его
> > пока
> > > > > > > > > > > накатывать после апдейта nginx?
> > > > > > > > > >
> > > > > > > > > > Пока - накатывать.
> > > > > > > > > >
> > > > > > > > > > Maxim Dounin
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Best regards,
> > > > > > > > > Anton Kuznetsov.
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Best regards,
> > > > > > > Anton Kuznetsov.
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Best regards,
> > > > > Anton Kuznetsov.
> > > >
> > > >
> > >
> > >
> > > --
> > > Best regards,
> > > Anton Kuznetsov.
> >
> >
> 
> 
> -- 
> Best regards,
> Anton Kuznetsov.





More information about the nginx-ru mailing list