Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

Работа с видеоконтентом относится к высоконагруженным задачам, требующих от сервера, на котором установлен WCS, соответствие определенным требованиям. 

Минимальные требования к серверу указаны в документации, но определить, достаточно ли производительности оборудования для вашего проекта, можно только выполнив ряд нагрузочных тестов по условиям вашего типового использования WCS.

Для выполнения теста вам потребуется:

  • виртуальный (VPS) или физический сервер (если его нет у вас, можно воспользоваться выделяемым сервером, например на ресурсах packet.com или paperspace.com)
  • источник видео трансляции (потоковое видео с программ OBS studio или ManyCam, трансляция с вашей web или IP-камеры)
  • сервер WCS для эмуляции зрителей вашего контента (для теста можно воспользоваться нашим тестовым сервером demo.flashphoner.com)

Проверим возможности Linux x86_64 сервера с производительностью, соответствующей минимальным требованиям для WCS:

  • 2 гигабайта оперативной памяти
  • 10 гигабайт места на диске
  • 1 ядро процессора


Подготовка сервера

 1. Указываем в файле настроек запуска ядра WCS сервера wcs-core.properties размeр Java memory heap размером 1 Гб:

-Xmx1024M

Затем перезапускаем WCS.

2. Все современные серверные процеcсоры многоядерные. Проведем нагрузочные тесты, используя только одно CORE CPU, отключив все остальные. Для этого смотрим текущий статус используемых ядер CPU:

[root@demo ~]# lscpu | grep list 
On-line CPU(s) list: 0-3

По выводу видим, что на данном сервере 4 core CPU (0,1,2,3). Отключаем все ядра, кроме четвертого:


echo 0 | sudo tee /sys/devices/system/cpu/cpu0/online
echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online
echo 0 | sudo tee /sys/devices/system/cpu/cpu2/online

Текущий статус после выполнения команды:

[root@p16 ~]# lscpu | grep list
On-line CPU(s) list:   3
Off-line CPU(s) list:  0-2

Для теста используем 1 CPU Intel Xeon E3-1240 v5@3.50GHz.

Проведение теста

Тест с транскодингом потока

1. Публикуем RTMP поток с определенными параметрами качества из программы OBS Studio на WCS сервер (пример указан в документации):

РазрешениеБитрейт
1280x720 (720p)1500 Кбит/с

2. Транскодируем этот поток с помощью REST запросов в несколько популярных разрешений 480p и 360p:

РазрешениеБитрейт, Кбит/с
854x480 (480p)1000
640x360 (360p)500

3. Используем пример нагрузочного тестирования с захватом потоков по WebRTC на другом сервере WCS. Этим примером мы эмулируем подписчиков (зрителей) трансляции, воспроизводящих поток в разных разрешениях (720p, 480p, 360p). При заданном числе зрителей (около 100) нагрузка процессора на сервере с WCS приближается к 80%, это рекомендуемая максимальная нагрузка на CPU, при которой сервер выполняет свой функционал корректно.


4. Публикуем два потока 720p, транскодируем их в разрешения 480p и 360p, добавляем в нагрузочное тестирование и по загрузке процессора на сервере с WCS (как описано выше, допустимо до 80%) определяем максимальное количество подписчиков на трансляции (около 80).


5. Аналогично выполняем тест с тремя потоками 720p, получаем возможное число зрителей около 30.

Тест без транскодирования потока

1. В этом тесте проверим, сколько зрителей получит возможность просмотра трансляции без транскодирования потока на сервере, т.е. публикуем RTMP поток с определенными параметрами качества из программы OBS Studio на WCS сервер (пример указан в документации) и просматриваем его же подписчиками.

РазрешениеБитрейт
1280x720 (720p)1500 Кбит/с

2. Используем пример нагрузочного тестирования с захватом потоков по WebRTC на другом сервере WCS. Этим примером мы эмулируем подписчиков (зрителей) трансляции, воспроизводящих поток с WCS сервера. Увеличиваем число зрителей до достижения на WCS сервере параметров загрузки процессора до 80%. При просмотре трансляции 720p мы получили возможное число зрителей потока - 120 подписчиков.


3. Повторяем тест с трансляцией 480p и нагрузочным тестом с захватом потоков на другом сервере WCS.

РазрешениеБитрейт
854x480 (480p)1000 Кбит/с



4. Проверим возможности сервера при трансляции 360p и нагрузочным тестом:

РазрешениеБитрейт
640x360 (360p)500 Кбит/с



Результаты

На основание теста с минимально рекомендуемой конфигурацией (1 CPU, 1 Gb RAM для Java heap) на выделенном (физическом) сервере, определили примерные возможности WCS по работе с потоковым видео на таком сервере:


  • с транскодингом:


ПубликацииЗрители
ТестКоличествоРазрешение Битрейт, кбит/сРазрешениеБитрейт, кбит/сКоличество
111280x720 (720p)1500854x480 (480p)100050
640x360 (360p)50050
211280x720 (720p)1500854x480 (480p)100020
640x360 (360p)50020
11280x720 (720p)1500854x480 (480p)100020
640x360 (360p)50020
311280x720 (720p)1500854x480 (480p)10005
640x360 (360p)5005
11280x720 (720p)1500854x480 (480p)10005
640x360 (360p)5005
11280x720 (720p)1500854x480 (480p)10005
640x360 (360p)5005


  • без транскодинга:


ПубликацииЗрители
КоличествоРазрешениеБитрейт, кбит/сКоличество
11280x720 (720p)1500120
1854x480 (480p)1000150
1640x360 (360p)500250







  • No labels