Быстрый вопрос. Сколько копий одного и того же фильма хранится на видеосервере (сервере потокового видео)? Предположим, что конкретное видео максимально запрашивается 1000 пользователями в один и тот же момент времени, сколько копий будет достаточно, чтобы параллельные потоки могли быть предоставлены каждому пользователю? В идеале 1 копия могла бы решить эту задачу, но какое оптимальное количество с учетом пропускной способности и одновременного доступа?
Ответ зависит от реализации потокового сервера. Если он многопоточен, он должен поддерживать единственный буфер памяти для этого файла. Однако, если файл очень большой (час видео может использовать более 1 ГБ памяти), то серверу может потребоваться надлежащее управление частями файла, которые находятся в памяти. Один из подходов - отображение файлов в памяти (однако это может не сработать, если общий размер видео слишком велик). Многие типы видеофайлов предоставляют достаточно информации, чтобы знать, какие части видео загружать для отправки клиенту определенного набора кадров.
Если вы транслировали видео со скоростью 1 Мбит / с; с 1000 клиентами вы одновременно отправляете клиентам 1 Гбит / с (не включая накладные расходы и переменные пики). Для этого вам потребуется пропускная способность восходящего потока 10 Мбит / с от сервера. В противном случае вам придется разделить его по серверам.
Вам не нужно больше одной копии, так как если бы эта копия была запрошена 1000 одновременными пользователями, она уже была бы в ОЗУ.
Обычно веб-сервер имеет только одну копию файла и загружает его в память по запросу, но я не вижу, чтобы какой-либо веб-сервер был настолько плохо написан, чтобы загрузить 1000 копий файла в память.
Кстати, 1000 одновременных запросов - многовато для одного сервера ...
Может быть, вы хотите настроить схему балансировки нагрузки с несколькими серверами?
Большее количество копий в большинстве случаев только усугубило бы проблему. Если у вас было несколько дисков, вы могли бы получить некоторую выгоду, если бы на каждом из них были копии очень популярных фильмов. Это уменьшило бы потребность в поисках, если бы вы читали один и тот же файл / поток в разных местах одновременно.
Но наличие нескольких копий на одном диске только увеличило бы размер поиска, если бы вы читали более чем из одной версии файла за раз. Если фильмы хранятся в ОЗУ или SSD, то поиск не является проблемой, но есть пространство, поэтому вам понадобится только одна копия, чтобы максимально использовать RAM или пространство SSD.