feature request: sendfile management

Andrei Nigmatulin andrei.nigmatulin at gmail.com
Thu Oct 25 18:30:59 MSD 2007


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.


-- 
Andrei Nigmatulin
GPG PUB KEY 6449830D

Now I lay me down to sleep(3)
Pray the OS my core to keep
If I die before I wake
Pray the Disk my core to take


More information about the nginx-ru mailing list