многопоточная закачка. странности.

Igor Sysoev is at rambler-co.ru
Mon Nov 22 09:51:34 MSK 2004


On Sun, 21 Nov 2004, Konstantin N. Bezruchenko wrote:

> Заметил странность одну. Имеем файл, размер:
> 3721979904 байт (3Gb) его качают reget-ом в несколько потоков.
> Постоянно появляется ошибка:
>
> Error   2052    22:50:58        21.11.2004      Сервер неожиданно закрыл соединение
>
> Кроме того в логе заметил странную вещь, очень маленький размер блока
> который отдается в той сессия которая сразу-же закрывается.
>
> Вот лог:
>
> 1.2.3.4 - - [21/Nov/2004:10:43:09 -0800] "GET /backup.tar HTTP/1.1" 206 11680 "-" "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)"
> 1.2.3.4 - - [21/Nov/2004:10:43:10 -0800] "GET /backup.tar HTTP/1.1" 206 11680 "-" "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)"
> 1.2.3.4 - - [21/Nov/2004:10:43:20 -0800] "GET /backup.tar HTTP/1.1" 206 11680 "-" "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)"
> ...
>
> На маленьких файлах от 10 мегабайт до 1 гигабайта закачка проходит
> гладко, без ошибок.
>
> Это все на linux-2.4.20

sendfile off;

Проблема в том, что это ядро понимает файлы больше 2G, а sendfile() - нет.
sendfile64() появился в 2.4.21. Кстати, это Red Hat 9 ?

А что при этом пишется в error_log ?

Я хотел сделать так, чтобы на таких Линуксах первая часть файла до 2G
отдавалась бы sendfile()ом, а вторая - read()/write(), но пока этого нет.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list