up
ГлавнаяБлогБезопасностьЖелезоПрограммированиеАдминистрирование
CPUBashFreeBSDCentOSPHPRAMBenchmarkSSDMySQLHTMLLinuxPerlHDDDebian

Популярные статьи
Категория “Администрирование

Использование канала сервера на медиа порталах

Почему то большинство клиентов, владельцев медиа порталов, не понимают даже примерно на сколько их сайт может использовать канал сервера, и сколько посетителей могут одновременно смотреть видео или слушать музыку. Давайте попробуем разобраться в этом вопросе. Пишем в гугле "фильмы онлайн" и берем первый попавшийся сайт, открываем любой фильм и смотрим размер файла .flv. В моем случае он составил 398 Mbyte. Возьмем его за шаблон и предположим, что все файлы на сайты такого же размера. Продолжительность фильма 01:39:27. Переведем это в секунды:

01ч *60*60 + 39м *60 + 27 = 5967 секунд

А размер файла переведем в биты, так как скорости канала именно в битах.

398 Mbyte * 8 = 3184 Mbit

И теперь посчитаем скорость потока, чтобы файл весом 3184 Mbit был передан за 5967 секунд. Ниже скорость нас не устроит, так как пользователю придется ждать пока файл загрузится.

3184 Mbit / 5967 секунд = 0.534 Mbit / sec

Вроде как бы скорость небольшая...
Давайте вспомним откуда берется онлайн, что это? Неужели все в realtime (реальном времени)? Это не так. Мы просматриваем видео уже ранее загруженное в буффер. То есть маленький кусочек  файла, который уже загружен. Размеры буферов в плеерах бывают разные: от 3-х до 30-ти секунд как правило. Проще говоря за период, пока мы смотрим первый кусочек видео, должен успеть загрузится второй кусочек. А если этого этого не произойдет? Ну в таком случае мы будем наблюдать задержку перед очередным воспроизведением. 
А теперь от теории к реалиям. Зачастую бывает что пользователь открыв первый видео файл не смотрит его, а листает сайт в поисках чего то еще, оставляем комментарии и т.д. Но мы же не можем отрезать пользователю доступ к сайту, значит какую то скорость нужно зарезервировать и для его перемещений. Можно взять самый минимум 0.1 Mbit/sec, хотя честно говоря я на таком медленном сайте бы не сидел.
Имеем:

0.534 Mbit/sec + 0.1 Mbit/sec = 0.634 Mbit/sec

Что дальше спросите вы, считаем количество посетителей? Рановато, скажу я вам. Представим картину что один пользователь запустил два фильма, ну число случайно забыл выключить первый. Не ждать же всем пользователям пока он его выключит. Естественно таких пользователей будет крайне мало, но это пик скорости.
Второй момент: а если у пользователя интернет 40 Mbit/sec и он начнет усердно перематывать фильм, т.е. поочередно загружать мелки урывки. Два таких пользователя, при условии что на вашем сервере канал 100 Mbit/s, и больше никто ничего посмотреть не сможет.
Третий момент: если у пользователя не скоростной интернет, но он таки будет перематывать фильм, и часто, чтобы сюжет просмотреть. Нельзя же постоянно ему выдавать "подождите, идет загрузка"...
Решение? Ну можно конечно лимитировать скорость в nginx. Но до какой скорости? Ну допустим поставим 1 Mbit/s.

Если у вас сервер подключен в 100 мбитному шаред порту, как правило все 100 вы выжать не сможете, так шаред подразумевает что 1 такой канал на несколько серверов. Ну допустим соседи у нас средней агрессивности по использованию канала и мы имеет 50 Mbit/s. Т.е. в результате всех наших вычислений 50 пользователей (канал 50 Mbit/s делим на использование одним пользователем 1 Mbit/s) смогут просматривать одновременно видео на сайте. Это при условии что мы установили лимит в nginx. И сайт получится у нас слегка "тормознутый".

Далее я думаю вы сможете сами рассчитать какой канал вам нужен и сколько пользователей он "переварит".

К слову, под эти требования идеально подходит линейка серверов NoLimit.

Tuesday, 19 August 2014, 23:54Прочитано 87 раз
Ссылка на страницу:

comments powered by Disqus

Чаще всего ищут

Статистика блога
Статтей: 177
Безопасность: 9
Железо: 19
Программирование: 14
Администрирование: 134