I spend some time today running multiple test scenarios with jitsi-meet-torture and the MalleusJitsificus test.
I ran the Selenium Grid for testing on my local Ryzen 7 1700 which is not a lot of resources. You can see some test results where the load on the server is dropping with more clients, this is because the Selenium Grid is overloaded and therefore doesn’t get taxed that hard anymore. I marked these in my tests and some tests were not pushed that far, only to 95% CPU usage.
All tests were ran for 120 seconds in total. The measurements started 30 seconds after the browsers launched to give them some time to settle down and get everything loaded in. Measurements were taken for the next 60 seconds after this with
sar for the CPU usage and a custom perl script for the bandwith usage. The default audio file was used, for video I used the FourPeople video from here but reduced the framerate to 24fps with ffmpeg.
Even though these are small-scale tests, you can see if the load is increasing exponentially, linear etc. and extrapolate from there.
The jitsi-meet server is a onebox with nginx, prosody, jicofo, jvb2 etc. all installed on the same machine (jitsi-videobridge2 version: 2.1-164-gfdce823f-1). Resource-wise this is not a high power server:
Hyper-V VM with 2 cores of a Xeon X5650
4GB of RAM
1 Gbit/s connectivity.
The “base” load was around 0,5% but that might have spiked a bit during the tests as other background tasks like puppet and telegraph might have kicked in.
The RAM usage just barely exceeded 1 GB in all these tests.
The test scenarios:
- 1 Conference, each participant is a speaker.
- 1 Conference with a fixed 9 participants but different amounts of speakers
- 1 Conference, each participant streamed video and audio
- 1 Conference, one participant with video+audio, different amount of other participants
Now some test scenarios without scaling as these were some examples that happen in our work day:
- 2 Conferences with each: 1 participant with video+audio, 2 “viewers” (3 participants per conference)
- 4 Conferences with each: 2 participants with audio, 1 “viewer” (3 participants per conference)
- 2 Conferences with each: 2 participants with audio, 4 “viewers” (6 participants per conference)
As you can see the test 1 overloaded my selenium grid, thats why I only got to 9 participants in the next test.
Test 3 overloaded again at 4 participants.
I hope some of you find these results helpful, maybe I can redo some of them when I set up a proper selenium cluster… but servers are expensive