On Tue, Apr 24, 2007 at 12:43:35AM +0300, Александр Ворона wrote:
> Igor Sysoev пишет:
> >On Fri, Apr 13, 2007 at 12:10:17PM +0300, Александр Ворона wrote:
> >>кстати попутно мелкая бага - при отдаче nginx'ом 0.5.17 файлов >2G
> >>(linux 2.6.20 и i386 sendfile64() и x86_64 sendfile() ) если за один
> >>sendfile[64](...,count) с (2^31-1) > count > (2^31-page_size) уходит
> >>количество байт 2^31-page_size, то закачка замирает
> >>strace
> >
> >А если в ngx_linux_sendfile_chain.c сделать
> >
> >-#define NGX_SENDFILE_LIMIT 2147483647L
> >+#define NGX_SENDFILE_LIMIT 2147479551L
> >
> >?
> попробовал одновременно с патчем для amd64 и файлов >4G
> чистое ядро 64bit, закачка файла 4G на 1G линке
>
> Долго ловил длинный sendfile
>
> 21:32:56 epoll_wait(13, {{EPOLLOUT, {u32=3699351873,
> u64=60640047636801}}}, 512, 599989) = 1
> 21:32:56 sendfile(11, 14, [69945958], 2147476890) = 2147476890
> 21:33:28 epoll_wait(13,
>
> замерло имхо потому, что sendfile передал ровно столько сколько
> запросили и не пришло события epoll'у
>
> wget -Y off -O /dev/null http://192.168.78.2:81/3.tmp
> --00:32:07-- http://192.168.78.2:81/3.tmp
> => `/dev/null'
> Устанавливается соединение с 192.168.78.2:81... соединение установлено.
> Запрос HTTP послан, ожидается ответ... 200 OK
> Длина: 4 294 967 296 (4.0G) [application/octet-stream]
>
> 51% [========================================>
> ] 2 217 422 848 --.--K/s ETA 08:39
То есть, замирания c 2^31-4K-1 происходят реже, чем c 2^31-1 ?
--
Игорь Сысоев
http://sysoev.ru