FreeBSD disk AIO support
Igor Sysoev
is at rambler-co.ru
Tue Aug 25 19:37:36 MSD 2009
On Tue, Aug 25, 2009 at 07:24:05PM +0400, Maxim Dounin wrote:
> Hello!
>
> On Sun, Aug 23, 2009 at 08:11:50PM +0400, Igor Sysoev wrote:
>
> > Экспериментальный патч для поддержки дискового AIO под FreeBSD.
> > Ядро должно поддерживать AIO:
> >
> > options AIO
> > или
> > kldload aio
> >
> > Настраивается так:
> >
> > ./configure --with-file-aio ...
> >
> > location / {
> > aio on;
> > output_buffers 1 128k;
> > }
> >
> > Возможно, нужно подкрутить следующие sysctl'и:
> >
> > vfs.aio.max_aio_queue 1024
> > vfs.aio.max_aio_queue_per_proc 256
> > vfs.aio.max_aio_per_proc 32
> > vfs.aio.max_aio_procs 32
> >
> > Диагностировать текущую AIO загрузку можно с помощью
> >
> > vfs.aio.num_queue_count
> > vfs.aio.num_aio_procs
> >
> > Если ядерных aio процессов не хватает или же в ядре нет поддержки aio
> > вообще, то nginx переходит к обычному чтению.
>
> Just in case it's intresting:
>
> Без загруженного aio падает по 12-му сигналу (SIGSYS). Если
> хочется проверять ENOSYS - SIGSYS надо перехватывать.
Спасибо, поставлю SIG_IGN.
> При загруженном - test suite выполняется штатно (0.8.10 +
> patch.aio, в конфигах всех тестов добавлено aio on), регрессий не
> отмечено. Тестировал на FreeBSD 6.2 и FreeBSD 7.1.
>
> Под реальной нагрузкой не пробовал.
Вот и славно. Нужно будет ещё sendfile(SF_NODISKIO) туда приспобить.
--
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list