ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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

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

----- Original Message ----- From: "Igor Sysoev" <is@xxxxxxxxxxxxx>
To: <nginx-ru@xxxxxxxxx>
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@xxxxxxxxxxxxx>
To: <nginx-ru@xxxxxxxxx>
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@xxxxxxxxxxxxx>
>To: <nginx-ru@xxxxxxxxx>
>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@xxxxxxxxxxxxx>
>>To: <nginx-ru@xxxxxxxxx>
>>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




 




Copyright © Lexa Software, 1996-2009.