...
Code Block |
---|
|
[Service]
User=flashphoner
Group=flashphoner
LimitNOFILE=100000
... |
Traffic encryption in a separate thread for each client session
By default, one CPU thread encrypts medai traffic for all the client sessions. This leads to one CPU core overload by such thread, espacyally on low-power servers, for big subscribers amount. Then, server can not send mediapackets to all subscribers, and streams viewed are degrading, FPS lowering and freezing.
To distribute the load evenly across the CPU cores, it is necessary to enable traffic encryption in a separate thread for each client session with the following parameters
Code Block |
---|
|
rtp_paced_sender=true
rtp_paced_sender_initial_rate=200000
rtp_paced_sender_increase_interval=50
rtp_paced_sender_k_up=0.9 |
and restart WCS.
Stream distribution optimization
A stream playback quality may drop when a number of subscribers are viewing it simutlaneouly (from 100 and more): low FPS, freezes. However, server capacity and channel bandwidth may be enough. In this case it is recommended to enable multithreaded stream distribution to subscribers using the following parameter
Code Block |
---|
|
streaming_distributor_subgroup_enabled=true |
In this case, audio and video client sessions are distributed by groups.
Maximum number of video sessions per group can be set with the following parameter
Code Block |
---|
|
streaming_distributor_subgroup_size=50 |
Maximum number of audio sessions per group can be set with the following parameter
Code Block |
---|
|
streaming_distributor_audio_subgroup_size=500 |
Frame queue size per group and maximum frame waiting time (in milliseconds) are set by the following parameters
Code Block |
---|
|
streaming_distributor_subgroup_queue_size=300
streaming_distributor_subgroup_queue_max_waiting_time=5000 |
for video and
Code Block |
---|
|
streaming_distributor_audio_subgroup_queue_size=300
streaming_distributor_audio_subgroup_queue_max_waiting_time=5000 |
for audio sessions respectively.