MeetrixIO is a well experienced company with WebRTC related technologies. We provide commercial support for Jitsi Meet, Kurento, OpenVidu, BigBlue Button, Coturn Server and other webRTC related opensource projects.

By deploying a horizontally scalable Jitsi Meet setup, you can scale your Jitsi Meet conferencing infrastructure to cater thousands of concurrent users. But, before you go live you might want to make sure that your infrastructure is capable of handling the desired number of concurrent users. Jitsi Meet Torture is a tool that can be used to run tests against a Jitsi Instance and it is capable of load testing Jitsi Meet.

Selinum Grid Setup

To simulate hundrads of concurrent users, we need to deploy Jitsi Meet Torture agains a selenium grid setup. There would be a selenium hub which accepts commands from Jitsi Meet Torture and pass them to selenium nodes. You can have hundrads of selenium nodes to simulate users.

Jitsi Meet Load Testing
Jitsi Meet Load Testing with Torture

Minimul setup with docker-compose

  1. Install Docker. You can use following scripts on Ubuntu 18.04

     sudo apt-get update
    
     sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    
     curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
     sudo add-apt-repository -y \
     "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
     $(lsb_release -cs) \
     stable"
    
     sudo apt-get -y update
     sudo apt-get -y install docker-ce
    
     sudo usermod -a -G docker $(whoami)
    
  2. Install the latest version of Docker Compose

  3. Create a docker-compose.yml file with following content.

     version: "3.3"
     services:
       hub:
           image: selenium/hub:3.141.59
           ports:
               - "4444:4444"
       chrome:
           build: ./node
           image: meetrix/jitsi-meet-torture-selenium-node
           volumes:
               - /dev/shm:/dev/shm
           ports:
               - 5555:5555
           depends_on:
               - hub
           environment:
               HUB_HOST: hub
               NODE_MAX_INSTANCES: 5
    
  4. Run the setup with docker-compose up -d

  5. Install openJDK and maven. On Ubuntu/Debian, you can use this command: apt -y update && apt-get -y install openjdk-8-jdk maven

  6. Clone Jitsi Meet Torture to your computer

  7. cd jitsi-meet-torture

  8. Change <YOUR_JITSI_MEET_INSTANCE_URL> to your Jitsi Meet installation (for example https://meet.example.com) in following script and run to perform the test.

./scripts/malleus.sh --conferences=1 --participants=2 --senders=2 --audio-senders=2 --duration=300 --room-name-prefix=test --hub-url=http://localhost:4444/wd/hub --instance-url=<YOUR_JITSI_MEET_INSTANCE_URL>

Running the test with large number of nodes

You can use the same docker containers for selenium hub and for selenium-node. On AWS, you can create an AMI for selenium nodes using meetrix/jitsi-meet-torture-selenium-node and can be assigned to an auto scaling group to spin up multiple nodes.

Looking for commercial support for Jitsi Meet ? Please contact us via hello@meetrix.io

Updated:

Leave a Comment