feature request: sendfile management

Alex Vorona voron at amhost.net
Thu Oct 25 18:49:36 MSD 2007


Andrei Nigmatulin пишет:
> On Thursday 25 October 2007 18:13, Alex Vorona wrote:
>   
>> MZ пишет:
>>     
>>> В пн, 22/10/2007 в 10:11 +0400, Igor Sysoev пишет:
>>>       
>>>> On Mon, Oct 22, 2007 at 09:41:23AM +0400, Andrey N. Oktyabrski wrote:
>>>> sendfile - это вообще не стандратная вещь. Для Линуксе, например,
>>>> пришлось сделать специальную обработку 2G+ файлов для sendfile32().
>>>>         
>>> Я понимаю.
>>> Но тормозит ведь! Может и для фри  #ifdef поставить ? Я бы и сам сделал,
>>> но не занимаюсь плотно С - могу накосячить.
>>>       
>> простым #ifdef тут наврядли обойтись получится. На одном и том же файле
>> в течение одного запроса sendfile()'ы  могут и блокироваться и не
>> блокироваться, например в зависимости от загрузки дисков и/или от
>> скорости канала к клиенту. Можно конечно упростить задачу, и, как только
>> sendfile() заблокировался первый раз - продолжать отдавать файл через
>> read/write. Насколько эта схема будет эффективной - вопрос второй.
>>
>> Какие ещё могут быть варианты ухода nginx от блокировки на диске,
>> забывая про AIO?
>>     
>
> Например, отдельный поток в котором выполняются все блокирующиеся операции. И 
> уведомление о готовности основного потока через pipe/socketpair.
>
>
>   
соотвественно каждый воркер должен стать многопоточным. Как с 
многопоточностью обстоят дела во FreeBSD ? И чем тогда ситуация с N 
двухпоточными воркерами будет отличаться от одного многопоточного воркера?





More information about the nginx-ru mailing list