Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Раздача больших фа йлов при помощи nginx
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К), но в целом, так.
--
Игорь Сысоев
http://sysoev.ru
|