Зависание скачивания. Сервер не закрывает соединение по таймауту.

Pavel V. pavel2000 at ngs.ru
Thu Sep 27 08:25:47 MSD 2007


Здравствуйте, Nginx-RU.

На сервере, раздающем mp3, периодически возникает "зависание" tcp-соединения, но Nginx со своей
стороны по таймауту соединение не закрывает. Это происходит как при
прослушивании mp3 плеером, так и при скачивании файла с сайта.
Проблему победить никак не можем, подскажите какие-нибудь идеи по её
локализации.

Особенно интересен тот факт, что соединение не закрывается по таймауту со стороны сервера.

Файлы раздаются Nginx-0.5.22.
Интерфейс сервера 100Mbit, Intel Corporation 82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller (rev 01)
ОСь -  fc5, "uname -a": Linux my.server.net 2.6.20-1.2316.fc5 #1 Fri Apr 27 19:49:38 EDT 2007 i686 i686 i386 GNU/Linux
load average: 2.67, 2.27, 1.97
На сервере используется шейпер траффика (с целью приоритезации 80 порта).
Суммарный поток раздачи с сервера 80-98 Mbit.


Вырезка опций конфига Nginx, который работает на 8080 порту:

user  apache;
worker_processes  1;
worker_priority  -10;

events {
    worker_connections  1024;
}

sendfile        off;
output_buffers 8 32k;
tcp_nodelay        on;

http {
    server {
        listen       my.server.net:8080 default;
        location / {
          root   /music;
        }
    }
}


На сервере сделан tcpdump "зависшего" соединения
(tcpdump -i eth0 host myhost.client.net and port 8080)

10:45:22.008231 IP my.server.net.webcache > myhost.client.net.4746: . 3942720:3944089(1369) ack 1 win 216
10:45:22.090822 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3949565 win 21219
10:45:22.120086 IP my.server.net.webcache > myhost.client.net.4746: . 3949565:3950934(1369) ack 1 win 216
10:45:22.120200 IP my.server.net.webcache > myhost.client.net.4746: . 3950934:3952303(1369) ack 1 win 216
10:45:22.251664 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3952303 win 19850
10:45:22.278066 IP my.server.net.webcache > myhost.client.net.4746: . 3952303:3953672(1369) ack 1 win 216
10:45:22.278186 IP my.server.net.webcache > myhost.client.net.4746: . 3953672:3955041(1369) ack 1 win 216
10:45:22.278313 IP my.server.net.webcache > myhost.client.net.4746: P 3955041:3956410(1369) ack 1 win 216
10:45:22.369887 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3955041 win 18481
10:45:22.419235 IP my.server.net.webcache > myhost.client.net.4746: . 3956410:3957779(1369) ack 1 win 216
10:45:22.419376 IP my.server.net.webcache > myhost.client.net.4746: . 3957779:3959148(1369) ack 1 win 216
10:45:22.465764 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3957779 win 17112
10:45:22.508777 IP my.server.net.webcache > myhost.client.net.4746: . 3959148:3960517(1369) ack 1 win 216
10:45:22.508903 IP my.server.net.webcache > myhost.client.net.4746: . 3960517:3961886(1369) ack 1 win 216
10:45:22.543574 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3959148 win 16428 <nop,nop,sack 1 {3960517:3961886}>
10:45:22.621058 IP my.server.net.webcache > myhost.client.net.4746: . 3961886:3963255(1369) ack 1 win 216
10:45:22.621181 IP my.server.net.webcache > myhost.client.net.4746: P 3963255:3964624(1369) ack 1 win 216
10:45:22.651559 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3959148 win 16428 <nop,nop,sack 1 {3960517:3963255}>
10:45:22.652822 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3959148 win 16428 <nop,nop,sack 1 {3960517:3964624}>
10:45:22.784246 IP my.server.net.webcache > myhost.client.net.4746: . 3964624:3965993(1369) ack 1 win 216
10:45:22.792310 IP my.server.net.webcache > myhost.client.net.4746: . 3959148:3960517(1369) ack 1 win 216
10:45:22.823759 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3959148 win 16428 <nop,nop,sack 1 {3960517:3965993}>
10:45:22.834240 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3965993 win 13005
10:45:22.888502 IP my.server.net.webcache > myhost.client.net.4746: . 3959148:3960517(1369) ack 1 win 216
10:45:23.235514 IP my.server.net.webcache > myhost.client.net.4746: . 3959148:3960517(1369) ack 1 win 216
10:45:23.268525 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3965993 win 13005
10:45:23.683219 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3965993 win 32856

10:45:24.076428 IP my.server.net.webcache > myhost.client.net.4746: . 3959148:3960517(1369) ack 1 win 216
10:45:24.116354 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3965993 win 32856
10:45:25.672072 IP my.server.net.webcache > myhost.client.net.4746: . 3959148:3960517(1369) ack 1 win 216
10:45:25.715944 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3965993 win 32856
10:45:28.905941 IP my.server.net.webcache > myhost.client.net.4746: . 3959148:3960517(1369) ack 1 win 216
10:45:28.942839 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3965993 win 32856
10:45:35.341822 IP my.server.net.webcache > myhost.client.net.4746: . 3959148:3960517(1369) ack 1 win 216
10:45:35.373806 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3965993 win 32856
10:45:48.231455 IP my.server.net.webcache > myhost.client.net.4746: . 3959148:3960517(1369) ack 1 win 216
10:45:48.266088 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3965993 win 32856
10:46:13.990243 IP my.server.net.webcache > myhost.client.net.4746: . 3959148:3960517(1369) ack 1 win 216
10:46:14.010837 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3965993 win 32856
10:47:05.560333 IP my.server.net.webcache > myhost.client.net.4746: . 3959148:3960517(1369) ack 1 win 216
10:47:05.580006 IP myhost.client.net.4746 > my.server.net.webcache: . ack 3965993 win 32856

10:51:34 - tcpdumping остановлен. Больше ни одного пакета не прошло.

Написал письмо. Запустил tcpdump снова ;-) Нажал "остановить" в winamp.

11:14:06.683103 IP 212.192.123.214.4746 > mp1.tomsk.ru.webcache: F 3881566771:3881566771(0) ack 1518301459 win 32856
11:14:06.733436 IP mp1.tomsk.ru.webcache > 212.192.123.214.4746: R 1518301459:1518301459(0) win 0




-- 
С уважением,
 Pavel                          mailto:pavel2000 at ngs.ru






More information about the nginx-ru mailing list