Добрый день.
WCS использует один процесс, в чем Вы можете убедиться, выполнив на сервере команду top. Внутри процесса сервера используется пул потоков, их показывает команда htop или
утилита jstack. Потоки, которые не используются в данный момент, не занимают процессорное время.
При завершении просмотра стрима всеми подписчиками, в течение определенного времени (если не указано в настройках, в течение 60 секунд), могут продолжать работать потоки транскодера, если транскодинг включен принудительно или подписчик его заказывал. При завершении публикации транскодинг останавливается сразу же, ресурсы, занятые соответствующими потоками, освобождаются. Подробнее о транскодинге Вы можете прочитать
здесь.
Если Ваш сервер используется для захвата
RTSP или
RTMP стримов, при отключении последнего подписчика на сервере в течение 60 секунд продолжает работать поток агента, который использовался для захвата видео.
Если во время трансляции все процессорные ядра Вашего сервера загружены более чем на 90%, причины могут быть следующими:
1) Использование транскодинга (3 опубликованных стрима 480p при этом полностью займут одно ядро процессора, либо 2 стрима 720p). Если транскодинг необходим, в этом случае поможет только изменение конфигурации сервера на более производительную.
2) Постоянное срабатывание сборщика мусора (Full GC) Java-машины. Это может означать нехватку памяти, выделенной под кучу (heap). По умолчанию, выделяется 1 Гб памяти. Рекомендуется выделить под кучу
1/2 объема физической памяти сервера.
3) Если транскодинг не используется, и памяти выделено достаточно, возможно, количество публикаций и подписчиков превышает возможности сервера. Например, по нашим нагрузочным тестам, система в конфигурации 1 Intel Xeon Gold 6140 CPU core 2.3 GHz, 2 Gb RAM, с настройками сервера по умолчанию, способна выдержать при загрузке CPU до 90% до 70 подписчиков на 1 стрим 360p без транскодинга (или, например, 7 публикаций по 10 подписчиков). В этом случае поможет выбор более производительной конфигурации.