+ All Categories
Home > Documents > Максим Лапшин, Erlyvideo

Максим Лапшин, Erlyvideo

Date post: 07-Jul-2015
Category:
Upload: ontico
View: 946 times
Download: 9 times
Share this document with a friend
Description:
HighLoad++ 2013
Popular Tags:
23
Вещание видео на 10 гбит/с Макс Лапшин, CTO Flussonic LLC. Sunday, October 27, 13
Transcript

Вещание видеона 10 гбит/с

Макс Лапшин, CTO Flussonic LLC.

Sunday, October 27, 13

Стриминг видеофайлов

• Пользователь хочет посмотреть видео• Надо показать ему в реальном времени

• Пользователь хочет управлять просмотром• Уникальные данные для каждого пользователя• Для каждого из 10 000 пользователей онлайн

Sunday, October 27, 13

Седая древность в IPTV

• Constant bitrate

• каждая секунда — фиксированное количество байт

• легкая перемотка и т.п.• планирование capacity сервиса (на всех 50 абонентов)

• многие так живут до сих пор

Sunday, October 27, 13

Хайтек от IPTV (RTSP)

• Контроль по TCP с поддержкой реконнекта

• Данные по UDP с возможностью ретрансмита

• Энтерпрайзно и неподъёмно• Доживает свой век у 3G операторов

Sunday, October 27, 13

Псевдостриминг

• variable bitrate в видео и аудио

• примитивный flv контейнер и ещё примитивнее flash player

• mod_flv в nginx — основное средство вещания

• никакого мультибитрейта или мультиязыка• примитивное управление проигрыванием• популярно и сегодня (весь «html5 video»)

Sunday, October 27, 13

Хайтек от Адоби (RTMP)

• Закрытый недокументированный протокол• Попытка решить и риалтайм доставку и широковещание

• Сумрачный индусский гений придумал делать уникальный поток для каждого пользователя

• Не получилось ничего• Адоб закрыли программу RTMP, но не все ещё догадались

Sunday, October 27, 13

Потребности сегодня

• FullHD, а следовательно и мультибитрейт

• Выбор языков, субтитров. За что и любим torrents.ru

• Управление проигрыванием (пауза, перемотка и т.п.)

• 3D, больше FPS и т.п.

Sunday, October 27, 13

Возможности сегодня

• Процессоры за 5 лет особо быстрее не стали

• Подешевели 10G линки (до 200 тыс рублей в месяц)

• SSD бегут по планете и спотыкаются об трупы HDD

• Стремительный переход на HTTP стриминг (HDS/HLS)

Sunday, October 27, 13

Экономика проблемы

• 1G линк — 25 000 рублей в месяц

• 10G линк — 200 000 рублей в месяц

• сервер — 10-20 000 рублей в месяц

• каждый сервер требует обслуживания• больше линков, меньше серверов

Sunday, October 27, 13

Цифры при 10G вещании

• 1 мбит/с контент

• 10 000 онлайн пользователей

• 5 000 запросов в секунду за 200 Кб сегментами

• ощущаются проседания на международных каналах

Sunday, October 27, 13

Проблемы с железом

• дисковая подсистема• сетевая подсистема• процессор• память

Sunday, October 27, 13

Память

• Под кеш всё равно не хватит

• LRU пищит и всё портит

• Изредка влезает самый свежак, но всё ломает LRU

• 32 Гб за глаза хватает под сетевые буферы

Sunday, October 27, 13

Процессор

• Хватит масштабироваться, работать надо• Гигагерцы лучше ядер

• Одного процессора хватает для чтения, перепаковки, посылки и учета пользователей на 10 Гбит/с

Sunday, October 27, 13

Сеть

• Intel, как будто бы есть другие варианты

• Самые свежие драйвера• Балансировка прерываний по ядрам

Sunday, October 27, 13

Диски

• Основная нагруженная часть• 10 Гбит без SSD не потянуть, но HDD дешевле

• Лучше меньше да больше: у SSD есть предел скорости

• Аппаратные рейды оставьте продавцам

• Спасибо Unix за удобное управление очередью диска

Sunday, October 27, 13

Проблемы с софтом

• Псевдостриминг дает перерасход трафика до 30%

• Для переключения контента нужен стриминг, причем HTTP

• HDS/HLS для флеш-плеера и остальных

• Предсегментация ломает префетч и перерасходует диск• Сегментация на лету — вариант

Sunday, October 27, 13

Выбранные решения

• JBOD HDD для хранения контента

• или HTTP сетевое хранилище (Swift)

• SSD для промежуточного кеша

• старые новые рекомендации по упаковке mp4

• сегментация на лету• постоянный самоконтроль

Sunday, October 27, 13

Flussonic(эрливидео)

• Быстрое mp4 чтение: распаковка индекса только на лету

• Никакого покадрового чтения: только GOP

• Агрегация дисковых запросов• Контроль за использованием ресурсов

Sunday, October 27, 13

Дисковое чтение

• Открытый файл держит в памяти весь moov (индекс данных)

• У каждого файла плавающий пул воркеров на чтение

• Все воркеры проходят через единую очередь чтения с диска

• На любом запросе может прийти HTTP 503 Overloaded

Sunday, October 27, 13

Нерешенные проблемы

• Правильное вычисление дискового устройства по имени файла• Автобалансировка между HDD при чтении одного файла

• Кластерная балансировка пользователей• 40G

Sunday, October 27, 13

Резюме

• Вещание более 2G с сервера стало рентабельным

• Старые техники не годятся, нужны новые (HTTP стриминг, SSD)

• Новые подходы есть, отлажены и пинают трупы старых

• Важно не только работать, но и не перерабатывать• Flussonic (эрливидео) прекрасно справляется

Sunday, October 27, 13

Вопросы?

Макс Лапшин[email protected]

Sunday, October 27, 13

Sunday, October 27, 13


Recommended