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

Александр Ворона voron at amhost.net
Fri Apr 13 14:24:03 MSD 2007


Igor Sysoev пишет:
> On Fri, Apr 13, 2007 at 12:10:17PM +0300, Александр Ворона wrote:
> 
>> Igor Sysoev пишет:
>>
>>> С неблокирующимся sendfile ситуация непонятна. Я впервые увидел, как
>>> Линукс за один неблокирующийся вызов передал 900M.
>> вызов должен был быть неблокирующимся - но он таким не был. nginx в это 
>> время естественно ничего кроме этого sendfile() не мог делать.. Может 
>> стОит попробовать отдавать sendfile()'ом не до конца файла, а ровно 
>> столько, сколько влезет в буфер сокета, который перед каждым sendfile() 
>> и определять?
>>
>> кстати попутно мелкая бага - при отдаче 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
> 
> На мой взгляд, это проблемы разработчиков ядра. Раньше sendfile
> прекрасно работал в неблокирующемся режиме. Если они это поломали,
> то им и чинить. 
да похоже все на это забили и ждут нормальной реализации aio :(
>Это вообще стандартное ядро ? 
да
>Удивительно, что про это ещё не знают пользователи lighttpd и прочая.
специально проверил lighttpd на linux-sendfile - точно также принимает 
коннекты, но ничего не отдаёт, пока отдаёт одному sendfile()'ом.
Шлёт кусками по ~1G, поэтому вышеописанной баги с затыком при отсылке 
~2G отдним sendfile()'ом не увидел





More information about the nginx-ru mailing list