Назад | Перейти на главную страницу

Конфигурация сервера для живого HTTP-сегментированного видео

Я пытаюсь найти наиболее оптимальную конфигурацию машины для веб-кеша, который будет обслуживать сегментированное по протоколу HTTP видео нескольким тысячам одновременных зрителей.

Контент состоит из периодически обновляемых текстовых файлов (называемых манифестами) размером несколько байтов (100–500 байт) и набора файлов видеофрагментов размером в тысячи байтов (52 000–250 000 байтов).

В моей установке есть сервер источника видео в реальном времени, который помещает эти файлы на сервер с поддержкой WebDAV (который будет соответствующим образом настроенным Apache или Nginx). Я хотел бы разместить эту «исходную» установку в нескольких местах с использованием стандартного оборудования и программного обеспечения с открытым исходным кодом для обслуживания населения.

Мои вопросы:

Nginx может выполнять кэширование самостоятельно с помощью модуля proxy_cache, хотя Varnish имеет больше функций (которые могут вам не понадобиться). Скорее всего, эта задача будет связана с вводом-выводом, а не с ЦП. Поэтому я бы действительно посмотрел на много оперативной памяти для кеширования или SSD. RAID5 - ужасная идея (небольшие случайные записи очень медленные с RAID5), как и диски SATA для задач с высоким вводом-выводом (они могут выполнять только около 70 операций ввода-вывода в секунду на диск, разделенных на коэффициент 4 для записи RAID5).

Тем не менее, даже при 10000 одновременных потоков и 5-секундных сегментах видео вы говорите только о 2000 случайных IOP в худшем случае. Любой SSD может справиться с этим, если он достаточно большой, и если набор данных достаточно мал, кеш файловой системы поможет вам.