Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Раздача больших файлов при помощи nginx
В пт, 28/11/2008 в 16:03 +0300, Igor Sysoev пишет:
> On Fri, Nov 28, 2008 at 02:33:49PM +0200, MZ wrote:
>
> > В пт, 28/11/2008 в 11:59 +0300, Igor Sysoev пишет:
> > > On Fri, Nov 28, 2008 at 11:41:05AM +0300, Volkov Oleg wrote:
> > >
> > > > Задача заключается в раздаче по http больших файлов. Запросы к файлам
> > > > по 1
> > > > мегабайту (сами файлы порядка гигабайта).
> > > > Можно ли заставить nginx читать с диска весь запрос целиком (1 Мб),
> > > > кэшировать
> > > > в оперативке а потом раздавать? При стандартных параметрах скорость (по
> > > > сравнению с линейным чтением) резко падает уже при 20 коннектах.
> > > >
> > > > Все это планируется крутить на ОС Linux. Пробовал включать/выключать
> > > > sendfile,
> > > > на скорость не влияло.
> > >
> > > Можно
> > >
> > > sendfile off;
> > > output_buffers 1 1m;
> > >
> > > только память быстро кончится - и у процессов, и в ядре на буферы сокетов.
> >
> > А чем-то отличается работа nginx для
> > output_buffers 1 64k;
> > и
> > output_buffers 2 32k;
> > ?
> >
> > Меня интересует такой момент - для второго случая nginx мог бы, после
> > того как первый буффер в 32k весь записан в сокет, начать читать новый
> > 32k буффер, а второй 32k все ещё ждет своей очереди пока не появится
> > место в буффере сокета.
>
> Да, вариант "2 32k" так и будет работать. Возможно, не так плавно, как
> хотелось бы (чтобы в памяти всегда был готов блок по 32К), но в целом, так.
Жаль что в документации не описано, весьма интересная возможность для
дополнительного тюнинга.
|