Дополнительные инструменты¶
В этом разделе представлены вспомогательные инструменты, которые могут быть использованы для администрирования WCS-сервера.
Проверка доступности портов¶
WCS-сервер может располагаться за NAT и требовать диапазона портов, открытого для внешней сети, например UDP 31000-32000. Это означает, что UDP-пакет, отправленный из внешней сети на порт из этого диапазона, должен дойти до сервера, на котором расположен WCS.
Проведем простой тест. Отправляем UDP пакет извне с помощью netcat
(nc
) и принимаем его на сервере с помощью tcpdump
.
Если пакет дошел, значит порт открыт.
nc¶
Для Centos
или для Debian/Ubuntu:
Эта команда отправит простой UDP пакет в нужном направлении.
tcpdump¶
Эта команда заставит слушать нужный порт и немедленно выведет в консоль информацию о прибытии пакета:
Утилита jstack¶
Это Java-утилита, которая дает важную информацию о Java-процессе и потоках выполнения.
При вызове программы jstack из консоли должна отобразиться краткая информация о jstack:
Если информация не отображается или утилита jstack не найдена, воспользуйтесь инструкцией к установке JDK. После установки jdk нужно будет создать символическую ссылку для jstack, чтобы была возможность его быстро вызвать, если ссылка не была создана во время установки:
Пример:
В этом примере 8888
- ID Java-процесса.
Начиная со сборки 5.2.801, WCS запускается от пользователя flashphoner
. В связи с этим, при использовании JDK 8, необходимо jstack запускать от того же пользователя:
Тестирование пропускной способности канала при помощи iperf¶
Качество картинки публикуемого потока напрямую зависит от пропускной способности канала между публикующей стороной и сервером, то же касается и подписчиков. Проверить пропускную способность канала можно при помощи утилиты iperf. Эта программа выпущена под все основные операционные системы: Windows, MacOS, Ubuntu/Debian, CentOS. iperf в режиме сервера может быть установлена вместе с WCS, что позволяет тестировать канал целиком, от публикатора до зрителя.
Установка iperf на CentOS 7 производится следующим образом:
Запуск iperf в режиме сервера
Здесь 5201
- порт, на который iperf ожидает соединений от тестирующих
клиентов
На стороне клиента iperf запускается следующим образом:
- Для проверки канала на отправку данных серверу по UDP
Здесь test2.flashphoner.com
- WCS сервер-
5201
- порт iperf в режиме сервера
Результат выполнения команды будет следующим:
-
Для проверки канала на прием данных от сервера по UDP
Здесь
test2.flashphoner.com
- WCS сервер5201
- порт iperf в режиме сервера
Результат выполнения команды будет следующим:
По умолчанию, iperf тестирует канал в течение 10 секунд. Это время рекомендуется увеличить, например, до 120 секунд
Результат тестирования канала на отправку данных серверу по UDP показывает максимальное значение битрейта публикации видео, при котором не будет потерь пакетов. В вышеприведенном примере битрейт публикации следует ограничить 1000 кбит/с, например, на стороне сервера
Необходимо отметить, что версии iperf на сервере и на тестирующем клиенте должны совпадать. В настоящее время актуальной является версия 3, хотя в репозиториях есть и версия 2.