Несколько непонятностей по nginx

Igor Sysoev is at rambler-co.ru
Tue Apr 24 01:50:32 MSD 2007


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





More information about the nginx-ru mailing list