Simple performance test for FreeSWITCH conferencing

This is a simple test that gives you an estimation of audio conferencing scalability of FreeSWITCH on your hardware.

  1. You need one or two FreeSWITCH servers, and one of them should answer to sip:moh@IPADDR:5080. The fastest way is to install this FreeSWITCH configuration:
  2. Edit vars.xml and remove G722 codec (or leave or replace it, if you want to test transcoding performance at the same time).
  3. Start FreeSWITCH:
    service freeswitch start
  4. Create conference participants by calling the MOH extension on the remote or the same server. This command will add a few dozens of participants in one go:
    timeout 2 sh -c "while true; do fs_cli -x 'conference xx dial sofia/internal/moh@IPADDR:5080'; done"
  5. check the number of participants:
    fs_cli -x 'show channels'
  6. run “top” or “mpstat -P ALL 1” to see the CPU load, and add more batches of participants.

This test differs from real world because in a real conference, one speaks and others are listening. Here everyone speaks at the same time. FreeSWITCH evaluates the energy level to find the active speaker before replicating their voice, so I guess the real conference would take less CPU power (need to look into the source code).

Some test results: PC Engines APU platform with 50 conference participants had the CPU usage about 60%. A single core VPS at was busy at around 50% during a test with 200 participants.

UPD1: (thanks bob bowles) Call out to yourself and monitor the sound quality with your own ear:

fs_cli -x 'conference human dial sofia/external/'


  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: