Loadtested jitsi-meet (on a small scale)

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. 1 Conference, each participant is a speaker.
  2. 1 Conference with a fixed 9 participants but different amounts of speakers
  3. 1 Conference, each participant streamed video and audio
  4. 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:

  1. 2 Conferences with each: 1 participant with video+audio, 2 “viewers” (3 participants per conference)
  2. 4 Conferences with each: 2 participants with audio, 1 “viewer” (3 participants per conference)
  3. 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 :wink:

2 Likes

A How-To can now be found here: Tutorial: Loadtesting Jitsi with MalleusJitsificus on a Selenium Grid

1 Like

Hi,

Thanks for your tutorial, I finally success to install selenium hub and node. My question is, how do you measure CPU usage and bandwidth requirements?

I’m thinking htop tools to measure CPU usage and vnstat to measure bandwidth requirements, is these the right tools? and where do we run these tools, do we evaluate these paramaters in the target server (which run jitsi meet) or our selenium node?

Thanks

Hi, glad you managed to get it workign!
It doesn’t really matter what you use to measure. I used htop for CPU usage and a custom perl script for network traffic that shows me current and averaged bandwith usage. You could also use sar for CPU and network stats or many more.

I still confuse for infrastructure topology its to Loadtesting Jitsi with MalleusJitsificus on a Selenium Grid, can you help me for it? how to infra topology for loadtesting?

Hi @Cookiefamily , How did you generated this graph? Where is this utility in jitsi-torture.
I want to generate report similarly for jitsi instance but I am not able to exceed users more than 8-10. If I increase the participant, I get the error

Exception in thread “Thread” org.openqa.selenium.TimeoutException: timeout: Timed out receiving message from renderer

Please help to solve the issue and show me the way to generate the similar report with graphs. Thank You