Re: Re[5]: Отдача больших файлов

Dmitry Dedukhin dedukhin at mail.ru
Wed Apr 1 19:43:40 MSD 2009


Так я не случайно писал
>>начинает отдавать файл, запрашивая каждый кусок с демона, висящего на 
>>каждом бэкенде

Блокироваться будет демон, а не nginx :)
Хотя опять же зависит от демона...

----- Original Message ----- 
From: "Igor Sysoev" <is at rambler-co.ru>
To: <nginx-ru at sysoev.ru>
Sent: Wednesday, April 01, 2009 2:27 PM
Subject: Re: Re[5]: Отдача больших файлов


On Wed, Apr 01, 2009 at 02:14:50PM +0400, Dmitry Dedukhin wrote:

> Так куски "горячих" файлов будут лежать в кэше ОС на бэкенде? Или я опять
> не прав?

Да, лежать будут, если памяти хватит, но всё равно непопулярные запросы
будут блокировать nginx на время работы с диском.

> ----- Original Message ----- 
> From: "Igor Sysoev" <is at rambler-co.ru>
> To: <nginx-ru at sysoev.ru>
> Sent: Wednesday, April 01, 2009 1:19 PM
> Subject: Re: Re[5]: Отдача больших файлов
>
>
> On Wed, Apr 01, 2009 at 12:36:50PM +0400, Dmitry Dedukhin wrote:
>
> >Ну хорошо, а если сравнить с вариантом, когда каждый файл целиком лежит 
> >на
> >одном диске?
>
> Тоже будет плохо. Но не будет лишних телодвижений.
>
> >----- Original Message ----- 
> >From: "Igor Sysoev" <is at rambler-co.ru>
> >To: <nginx-ru at sysoev.ru>
> >Sent: Wednesday, April 01, 2009 11:16 AM
> >Subject: Re: Re[5]: Отдача больших файлов
> >
> >
> >On Wed, Apr 01, 2009 at 10:26:15AM +0400, Dmitry Dedukhin wrote:
> >
> >>1. Для того, чтобы один файл отдавался более чем одним
> >>бэкендом-хранилищем
> >>(особенно в случае нескольких супер-популярных файлов).
> >>2. Для того, чтобы запросы с Range'ем с большей вероятностью 
> >>использовали
> >>разные бэкенды (т.е. в случае многопоточного скачивания скорость будет
> >>выше).
> >>
> >>Понятно, что для небольших файлов (меньше размера одного чанка) он всё
> >>равно будет лежать на одном хранилище.
> >
> >По идее, это должно работать, если бэкенды заняты толькоэтим популярным
> >файлом, но на деле к ним же ещё будут приходить куча непопулярных
> >запросов.
> >
> >>----- Original Message ----- 
> >>From: "Igor Sysoev" <is at rambler-co.ru>
> >>To: <nginx-ru at sysoev.ru>
> >>Sent: Wednesday, April 01, 2009 9:24 AM
> >>Subject: Re: Re[5]: Отдача больших файлов
> >>
> >>
> >>On Wed, Apr 01, 2009 at 08:05:18AM +0400, Dmitry Dedukhin wrote:
> >>
> >>>Как вариант эффективной раздачи больших файлов можно использовать схему
> >>>бэкенд(хранилище, рэйд-массив)+фронтенд(сервер, с которым "общается"
> >>>пользователь).
> >>>После загрузки на фронтенд каждый файл разбивается на небольшие куски
> >>>(2-5МБ), каждый кусок кладется на случайно выбранный бэкенд,
> >>>идентификатором файла является его хэш (md5 например). Информация о
> >>>расположении кусков хранится в простейшем случае в центральной базе 
> >>>(для
> >>>высоконагруженного проекта имеет смысл использовать распределенную БД
> >>>или
> >>>её аналог).
> >>>При скачивании файла nginx запрашивает информацию о расположении всех
> >>>кусков (или части в случае запроса с заголовком Range) и начинает
> >>>отдавать
> >>>файл, запрашивая каждый кусок с демона, висящего на каждом бэкенде.
> >>
> >>А зачем файл разбивать ?
> >>
> >>
> >>-- 
> >>Игорь Сысоев
> >>http://sysoev.ru
> >>
> >
> >-- 
> >Игорь Сысоев
> >http://sysoev.ru
> >
>
> -- 
> Игорь Сысоев
> http://sysoev.ru
>

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






More information about the nginx-ru mailing list