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

Igor Sysoev is at rambler-co.ru
Tue Apr 24 23:52:21 MSD 2007


On Tue, Apr 24, 2007 at 07:27:50PM +0400, Александр Ворона wrote:

> Igor Sysoev пишет:
> >On Tue, Apr 24, 2007 at 06:38:51PM +0400, Александр Ворона wrote:
> >
> >>Пытаюсь разшевелить lkml'щиков http://lkml.org/lkml/2007/4/23/289, но 
> >>особо много не добился. Проскочила разве что идея про новый системный 
> >>вызов splice(2.6.17+)
> >
> >Похоже, пока воркер блокируется в ядре на чтении с диска, tcp'шный стэк
> >на 1G успевает передать и получить ack'и на предыдущую порцию, поэтому,
> >когда чтение завершается, буфер опять свободный и всё повторяется снова.
> >
> 
> да - а неблокирующихся read'ов я пока не видел. Надо будет посмотреть 
> что за зверь spllice.
> Кстати, а как неблокирующееся чтение при sendfile реализовано во FreBSD?

Никак. Во FreeBSD sendfile так же блокируется на чтении. Но не знаю, можно
ли там достичь такого же эффекта при скачивании по 1G.

Есть ещё флаг SF_NODISKIO:

     The flags argument has one possible value: SF_NODISKIO.  This flag causes
     any sendfile() call which would block on disk I/O to instead return
     EBUSY.  Busy servers may benefit by transferring requests that would
     block to a separate I/O worker thread.

но на практике, кроме академического flash'а, я не видел его применения.


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list