Welcome! Log In Create A New Profile

Advanced

Re: Меня опять терзают смутные сомнения... (с)

Maxim Dounin
January 16, 2010 10:06PM
Hello!

On Sun, Jan 17, 2010 at 12:01:39AM +0100, Anton Kuznetsov wrote:

> Я уже не раз писал о проблемах с частым обрывом коннектов при раздаче
> большой статики. И вот у меня на форуме появился человек который пожаловался
> со своей стороны на то, что мне так не нравилось в логах. И кажется мы
> нащупали в чем дело.
> Проблема в логах выглядит так:
>
> 217.118.79.28 - - [01/Dec/2009:00:07:57 +0300] 31.386 GET
> /multiki/rovno.v.3-15.avi HTTP/1.1 206 132988
> 85.202.188.196 - - [01/Dec/2009:00:08:01 +0300] 31.762 GET
> /filmiki/gostja.iz.buduschego.1.avi HTTP/1.0 206 132255
> 195.158.228.210 - - [01/Dec/2009:00:08:02 +0300] 30.284 GET
> /filmiki/voskresene.polovina.shestogo.2.avi HTTP/1.1 206 123537
>
> За 30 секунд ( send_timeout 30s;) скачивается некий тоже весьма одинаковый
> кусок (sndbuf=64k; 2 раза?) и разрыв.
>
> Пользователь отписал что у него 128кбит adsl и с других моих серверов, где
> фрюха и sendfile on; все качается без разрывов.
> Проблемный сервер под линуксом, sendfile off и output_buffers 2 1024k;
>
> Я поставил
> send_timeout 120s;
> output_buffers 2 512k;
>
> И всем сразу полегчало. Я правильно догадываюсь, что если юзер очень
> медленный и если он не успел за время send_timeout скачать весь
> output_buffers и попросить новый, то nginx думает что передача встала и
> принудительно рвет коннект??? Качание из буфера за активность не
> считается???

Нет, не правильно. При отправке данных в сокет отсчёт таймаута
начинается заново, вне зависимости от того отправился ли полный
буфер или нет.

Потенциально возможны грабли в тех местах где отправка данных
специально откладывается - i.e. при использовании
sendfile_max_chunk, limit_rate/limit_rate_after, postpone_output,
send_lowat. Но эти места довольно прозрачны, перечитывались уже
не один раз, и шансов найти что-то без debug log'а - никаких.

Впрочем, мне усиленно кажется что проблемы лежат где-то в области
поведения клиентов и/или tcp/ip. И таймауты в 30 секунд вполне
реально есть. Но тут уже надо смотреть tcpdump, причём хорошо бы с
двух сторон. Да и не факт что это проблема, а не суровая
реальность:

217.118.79.28 = билайн gprs
85.202.188.196 - не знаю что, но где-то на сахалине
195.158.228.210 - спутниковая связь

Мне вот совсем не удивительно что оно провисает на неведомо
сколько.

[...]

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Меня опять терзают смутные сомнения... (с)

Anton Kuznetsov January 16, 2010 06:02PM

Re: Меня опять терзают смутные сомнения... (с)

Maxim Dounin January 16, 2010 10:06PM

Re: Меня опять терзают смутные сомнения... (с)

vromanov January 17, 2010 01:14AM

Re: Меня опять терзают смутные сомнения... (с)

vromanov January 17, 2010 01:34AM

Re: Меня опять терзают смутные сомнения... (с)

Alex Vorona January 17, 2010 03:42AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 167
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready