Добрый день.
Делаем площадку для проведения вебинаров, столкнулись с проблемами масштабирования.
Когда кол-во пользователей стало превышать 1к подключений, увеличили диапазон портов, в документации сказано что диапазон не должен пересекаться с используемыми портами в системе, в разных темах вы советовали разные диапазоны (30001 - 40000, 20001-40000, 10001-50000), мы поставили такние настройки
Но почему то в статистике (/?action=stat) отображается всего 8к портов.
Так же появилась проблема, когда кол-во подписчиков выросло до 2,6к переодически кол-во свободных портов (ports_media_free) падало до 0, и переодически страница статистики не отображалась, ну и само собой пользователи (новые) не могли подключится, у старых тем не менее стримы работали.
Почему кол-во свободных портов падало до 0 (диапазон пересекается с тем что использует система)?
Какой оптимальный должен быть диапазон портов?
И какие рекомендации по настройки сервера для максимального увеличения пользователей?
У нас довольно мощный сервер, а стримы транслируются в минимальном разрешении (360х240), в теории сервер должен выдерживать большое кол-во пользователей
Хор-ки сервера:
Процессор
2 × Intel Xeon Silver 4114 2.2 ГГц
Память
192 ГБ DDR4
Делаем площадку для проведения вебинаров, столкнулись с проблемами масштабирования.
Когда кол-во пользователей стало превышать 1к подключений, увеличили диапазон портов, в документации сказано что диапазон не должен пересекаться с используемыми портами в системе, в разных темах вы советовали разные диапазоны (30001 - 40000, 20001-40000, 10001-50000), мы поставили такние настройки
media_port_from = 11001
media_port_to = 28000
Но почему то в статистике (/?action=stat) отображается всего 8к портов.
Так же появилась проблема, когда кол-во подписчиков выросло до 2,6к переодически кол-во свободных портов (ports_media_free) падало до 0, и переодически страница статистики не отображалась, ну и само собой пользователи (новые) не могли подключится, у старых тем не менее стримы работали.
Почему кол-во свободных портов падало до 0 (диапазон пересекается с тем что использует система)?
Какой оптимальный должен быть диапазон портов?
И какие рекомендации по настройки сервера для максимального увеличения пользователей?
У нас довольно мощный сервер, а стримы транслируются в минимальном разрешении (360х240), в теории сервер должен выдерживать большое кол-во пользователей
Хор-ки сервера:
Процессор
2 × Intel Xeon Silver 4114 2.2 ГГц
Память
192 ГБ DDR4
#webrtc ports range
media_port_from =11001
media_port_to =28000
custom_ice_agent =true
#codecs
codecs =opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,vp8,h264,flv,mpv
codecs_exclude_sip =mpeg4-generic,flv,mpv
codecs_exclude_streaming =flv,telephone-event
codecs_exclude_sip_rtmp =opus,g729,g722,mpeg4-generic,vp8,mpv
#websocket ports
ws.port =8080
wss.port =8443
streaming_video_decoder_fast_start=true
mixer_layout_class=com.flashphoner.media.mixer.video.presentation.GridLayout
mixer_video_height=360
mixer_video_width=1920
mixer_video_grid_layout_middle_padding=0
mixer_video_grid_layout_padding=0
disable_rest_auth=true
#disable_rest_requests=false
http.port=8081
https.port=8444
inbound_video_rate_stat_send_interval=1
outbound_video_rate_stat_send_interval=1
webrtc_aes_crypto_provider=JCE
use_fdk_aac=true
client_subscribe_streams_max=20
media_port_from =11001
media_port_to =28000
custom_ice_agent =true
#codecs
codecs =opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,vp8,h264,flv,mpv
codecs_exclude_sip =mpeg4-generic,flv,mpv
codecs_exclude_streaming =flv,telephone-event
codecs_exclude_sip_rtmp =opus,g729,g722,mpeg4-generic,vp8,mpv
#websocket ports
ws.port =8080
wss.port =8443
streaming_video_decoder_fast_start=true
mixer_layout_class=com.flashphoner.media.mixer.video.presentation.GridLayout
mixer_video_height=360
mixer_video_width=1920
mixer_video_grid_layout_middle_padding=0
mixer_video_grid_layout_padding=0
disable_rest_auth=true
#disable_rest_requests=false
http.port=8081
https.port=8444
inbound_video_rate_stat_send_interval=1
outbound_video_rate_stat_send_interval=1
webrtc_aes_crypto_provider=JCE
use_fdk_aac=true
client_subscribe_streams_max=20
### SERVER OPTIONS ###
# Set this property to false to disable session debug
-DsessionDebugEnabled=false
# Disable SSLv3
-Djdk.tls.client.protocols="TLSv1,TLSv1.1,TLSv1.2"
### JVM OPTIONS ###
#-Xmx1024M
#-Xmx4096M
-Xms64g -Xmx64g
#-Xcheck:jni
# Can be a better GC setting to avoid long pauses
-XX:+UseConcMarkSweepGC -XX:NewSize=1024m
#-XX:NewSize=1024m
#-XX:+CMSIncrementalMode
#-XX:+UseParNewGC"
#Disable heuristic rules
-XX:+UseCMSInitiatingOccupancyOnly
#Reduce Old Gen threshold
-XX:CMSInitiatingOccupancyFraction=70
# Uncomment to fix multicast crosstalk problem when streams share multicast port
-Djava.net.preferIPv4Stack=true
# Default monitoring port is 50999. Make sure the port is closed on firewall. Use ssh tunel for the monitoring.
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=50999
-Dcom.sun.management.jmxremote.host=localhost
-Djava.rmi.server.hostname=localhost
-XX:ErrorFile=/usr/local/FlashphonerWebCallServer/logs/error%p.log
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
-Xloggc:/usr/local/FlashphonerWebCallServer/logs/gc-core-
# Use System.gc() concurrently in CMS
-XX:+ExplicitGCInvokesConcurrent
# Disable System.gc() for RMI, for 10000 hours
-Dsun.rmi.dgc.client.gcInterval=36000000000
-Dsun.rmi.dgc.server.gcInterval=36000000000
# Proxy configuration
#-Dhttps.proxyHost=192.168.1.1
#-Dhttps.proxyPort=3128
#-Dhttp.proxyHost=192.168.1.1
#-Dhttp.proxyPort=3128
#-Dhttp.nonProxyHosts=localhost|127.0.0.1|10.*|169.254.169.254
-server
-XX:+UnlockDiagnosticVMOptions
-XX:+UseAES
-XX:+UseAESIntrinsics
# Set this property to false to disable session debug
-DsessionDebugEnabled=false
# Disable SSLv3
-Djdk.tls.client.protocols="TLSv1,TLSv1.1,TLSv1.2"
### JVM OPTIONS ###
#-Xmx1024M
#-Xmx4096M
-Xms64g -Xmx64g
#-Xcheck:jni
# Can be a better GC setting to avoid long pauses
-XX:+UseConcMarkSweepGC -XX:NewSize=1024m
#-XX:NewSize=1024m
#-XX:+CMSIncrementalMode
#-XX:+UseParNewGC"
#Disable heuristic rules
-XX:+UseCMSInitiatingOccupancyOnly
#Reduce Old Gen threshold
-XX:CMSInitiatingOccupancyFraction=70
# Uncomment to fix multicast crosstalk problem when streams share multicast port
-Djava.net.preferIPv4Stack=true
# Default monitoring port is 50999. Make sure the port is closed on firewall. Use ssh tunel for the monitoring.
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=50999
-Dcom.sun.management.jmxremote.host=localhost
-Djava.rmi.server.hostname=localhost
-XX:ErrorFile=/usr/local/FlashphonerWebCallServer/logs/error%p.log
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
-Xloggc:/usr/local/FlashphonerWebCallServer/logs/gc-core-
# Use System.gc() concurrently in CMS
-XX:+ExplicitGCInvokesConcurrent
# Disable System.gc() for RMI, for 10000 hours
-Dsun.rmi.dgc.client.gcInterval=36000000000
-Dsun.rmi.dgc.server.gcInterval=36000000000
# Proxy configuration
#-Dhttps.proxyHost=192.168.1.1
#-Dhttps.proxyPort=3128
#-Dhttp.proxyHost=192.168.1.1
#-Dhttp.proxyPort=3128
#-Dhttp.nonProxyHosts=localhost|127.0.0.1|10.*|169.254.169.254
-server
-XX:+UnlockDiagnosticVMOptions
-XX:+UseAES
-XX:+UseAESIntrinsics