#video #video-streaming
#Видео #потоковое видео
Вопрос:
Как крупный видеосайт, такой как YouTube или DailyMotion, обрабатывает большое количество одновременных загрузок видео. Например, чтобы иметь возможность обрабатывать пропускную способность от 1000 пользователей, какие особые соображения необходимо учитывать в веб-серверах, оборудовании и т.д.? Спасибо.
Ответ №1:
Это то, что известно как проблема c10k — как вы обрабатываете 10 000 клиентов одновременно.
Программное обеспечение веб-сервера должно быть хорошо написано, чтобы каждый сервер мог общаться с сотнями или тысячами клиентов одновременно.
Серверная часть хранилища должна быть хорошо спроектирована, чтобы каждый сервер имел относительно неоспоримую возможность записи в сеть хранения. Сеть хранения должна быть избыточной, чтобы неработающие диски не уничтожали пользовательские данные. (Даже частота отказов 0,01% в год означает сотни разрядившихся дисков в год, когда у вас их миллионы.)
Серверные части базы данных должны быть готовы к невероятному масштабированию — ничего глупого вроде «заблокировать таблицу» при вставке новых записей.
Структура маршрутизации должна быть подготовлена для маршрутизации трафика в близлежащие центры обработки данных на основе фактической стоимости трафика задействованных интернет-провайдеров. (Нет смысла ставить всю сеть на колени, когда загружаемые видео пересекаются по каналам на пути к центрам обработки данных.)
Структура маршрутизации должна быть подготовлена для одновременной обработки всех сайтов, переходящих в автономный режим, для перенаправления неудачных загрузок на новые серверные центры без особых усилий.
Центры обработки данных должны быть построены таким образом, чтобы справляться с перебоями в подаче электроэнергии, отказами кондиционеров, сбоями сети, проникновениями злоумышленников или любопытных лиц, пытающихся проникнуть внутрь, как правило, при наличии двух или более источников питания, включая массивные источники бесперебойного питания и генераторы по всему сайту; нескольких независимых кондиционеров, которые могут обслуживать весь сайт; двух, трех, четырех или более сетевых источников; физических мер безопасности и, возможно, вооруженной охраны.
У Hurricane Electric есть несколько хороших фотографий некоторых их центров обработки данных. Они выглядят впечатляюще, но являются крошечной частью потребностей центров обработки данных Google, Facebook или Amazon.
Комментарии:
1. допустим, вместо 10 000 пользователей, загружающих видео одновременно, у вас есть 100. Может ли обычная веб-настройка поддерживать это или для этого потребуются некоторые дополнения?
2. @David542, это зависит. Если у вас 100 пользователей в секунду , пытающихся выполнить загрузку, это может быть затруднительно для одного сервера. Если вы ожидаете, что максимум в любой момент времени может составлять 100 пользователей, это, вероятно, более реалистичная рабочая нагрузка.
3. как насчет соображений пропускной способности входящего канала? Является ли это когда-либо проблемой / узким местом: и если да, то в чем конкретно проблема? (например, сервер, веб-сервер, центр обработки данных и т.д.)
4. @David542, это зависит от длины, кодека, разрешения и «пропускной способности» отдельных фильмов. Десять часов видео 2002 года занимают около 3,1 гигабайта, восемь часов видео 2008 года занимают около 5,5 гигабайт, восемь часов видео 2011 года занимают 24 гигабайта. Конечно, вы всегда можете купить каналы центра обработки данных достаточно большого размера, 4 ТБ стоят всего 400 долларов в месяц .