Skip to content

Performance

Olof Kallander edited this page Apr 17, 2022 · 5 revisions

Performance depends on type of CPU and capacity of network infra structure. That means you cannot take any numbers presented here literally. The numbers are an indication and you may achieve more or less depending on your hardware and potentially other software competing for resources. The SMB load depends on how many audio and video streams it has to handle. Each stream actually being forwarded to other recipients will cause decryption and encryption load as well as load for just receiveing and transmitting the packets over the NIC. As each meeting limits the number of forwarded audio and video streams, the load will increase linearly as you reached those 5-9 participants depending on the last-N for the meeting. Each person added will still only receive those N audio and video streams. A smaller meeting will be cheaper in terms of load and load grows exponentially until last-N participants and linearly from that point on. Load is also reduced significantly if few people send video.

Mixed channels in a meeting puts further load on the SMB as each receive and forward channel puts additional transcoding load on SMB. The number of audio streams to encrypt will be fewer but it does not quite save the load spent on transcoding.

Benchmarks on 4-core Intel Xeon Cascade Lake

About 325 people could be supported in full audio video meetings in worst scenario where meetings are at least lastN+1 persons. For 1-1 calls, SMB could support at least 400 people (200 calls). If you reduce the number of video channels into the meeting the number of people supported grows. For audio only calls the capacity doubles at least.

For screen share sessions with audio only, the limit is around 500+ people if the meetings are larger. For many 1-1 call session with screensharing the inbound video load will put a limit at 500.

Benchmarks on 8-core Intel Xeon Cascade Lake

This machine will entail that the worker thread count increases from 3 to 7. The channel count thus more than doubles compared to 4-core machine. However, it is important to recognise that this puts further strain on the NIC. 10Gbps NIC is required. You must also configure the SMB with at least 2, preferably more UDP ports. Otherwise, the socket will not be able to cope with the load and you suffer packet loss before you saturate cpu.

Benchmarking

If you have a system that can put sufficent load on SMB, you can monitor SMB health by accessing the local stats endpoint at http://localhost:8080/stats. There are metrics about bitrates, packet rates and cpu. Specifically, the worker thread cpu can indicate when you are close to saturating the capacity. The engine thread cpu is also of importance. If you run out of it, SMB can no longer handle the forwarding and mixing throughput.

Clone this wiki locally