Проверили ваш сервер.
1. Во время, когда вы столкнулись с проблемой (непосредственно перед перезапуском WCS) видим в логах проблемы с SDP, полученным от паблишера:
Это может означать потери на канале клиента, если это публикация WebRTC или захват RTSP потока с внешнего источника. В случае WebRTC поможет переключение на TCP транспорт
В случае RTSP источника проблема, скорее всего, на его стороне, т.к. RTSP сигналинг по умолчанию использует TCP.
2. Непонятные ошибки - это статистика, выводимая в лог по завершении медиасессии
Она должна выводиться в отдельный файл
/usr/local/FlashphonerWebCallServer/logs/media-session-connection-stats-*.log
, но, если вывод в этот файл не настроен в
log4j.properties
, эта статистика идет в серверный лог. Если она мешает в этом логе, добавьте в
log4j.properties
следующие строки
Code:
log4j.logger.MediaSessionConnectionStats=error, mediaSessionConnectionStatsAppender
log4j.additivity.MediaSessionConnectionStats=false
log4j.appender.mediaSessionConnectionStatsAppender=com.flashphoner.common.logging.NewLogForEachRunFileAppender
log4j.appender.mediaSessionConnectionStatsAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.mediaSessionConnectionStatsAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.mediaSessionConnectionStatsAppender.layout.ConversionPattern=%m%n
log4j.appender.mediaSessionConnectionStatsAppender.File=${com.flashphoner.fms.AppHome}/logs/stats/media-session-connection-stats.log
3. Также мы заметили, что полная переустановка, проведенная вами, согласно логам заключалась в откате 5.2.1611 до 5.1.3603 и установке 5.2.1888, все это без удаления предыдущей сборки
Такой способ не рекомендуется, т.к. разные минорные версии сервера используют немного разные настройки, которые могут конфликтовать
Рекомендации будут следующими:
1. Сделать чистую установку сервера:
- сохранить файлы
Code:
wss.jks
flashphoner.license
flashphoner.properties
log4j.properties
wcs-core.properties
database.yml
- полностью удалить WCS
Code:
sudo /usr/local/FlashphonerWebCallServer/bin/uninstall.sh
- установить последнюю сборку WCS
5.2.1906
- скопировать сохраненные файлы в
/usr/local/FlashphonerWebCallServer/conf
2. Почистить настройки:
- убрать устаревшую настройку
Code:
disable_manager_rmi = false
- настройки, отвечающие за частоту PLI запросов, ограничить до 1 секунды или выше, 300 мс и 500 мс выглядит слишком часто и может забивать канал паблишера ключевыми кадрами, если браузер будет отвечать на каждый PLI запрос
Code:
rtcp_pli_request_interval=1000
periodic_fir_request_interval=1000
3. Обновить JDK до 14 или 15:
JDK 14 и настроить ZGC:
Настройка Z Garbage Collector (ZGC). Это снизит задержки в работе Java машины при сборке мусора и поднимет общую производительность.
4. Поднять уровень логов сервера до INFO
Code:
log4j.rootLogger=info, stdout, fAppender
5. Если проблема повторится, снимать репорт скриптом
Сбор отладочных логов при помощи скрипта report.sh до перезапуска WCS, в этом случае в составе отчета соберется актуальный jstack, в котором будет видно, если какой-то из процессов встал в блокировку.
Часть этих рекомендаций мы уже описывали в предыдущей теме.