FreeSWITCH performance test on AMD Geode LX800

This is a proof-of-concept test to see if the PC Engines’ ALIX2 board is suitable for a basic VoIP application.

First I compiled the latest FreeSWITCH version from Git. It was a mistake to run the compilation on the ALIX board: the CPU is quite slow, and the whole compilation took several hours.  I should’ve done the compilation on a more powerful machine and then copy the binaries to the ALIX.

In these tests, I used the default dialplan that came with FreeSWITCH (highly insecure, with the password 1234 for all users). I added an external SIP profile to connect it to my other IP PBX, so that I can easily place incoming calls.

An Ubuntu notebook with Twinkle was used as the SIP client for the ALIX server.

FreeSWITCH was running with -rp option, assigning the process a high priority.

1. IVR prompts and voicemail worked immediately, and the flash memory speed delays were insignificant.

2. A call without transcoding. Both call legs were using PCMA codec:

# "vmstat 1" output:
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
1  0   3792   4036  23204 187060    0    0     0    36 1205 1576  0  2 98  0
1  0   3792   4036  23204 187068    0    0     0     0 1205 1548  0  3 97  0

# "top" output
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
3187 freeswit  -2 -10 30504  12m 4148 S  6.9  5.0   0:16.60 freeswitch

3. A call with transcoding. One leg used G722@16000 codec, and the other leg was GSM@8000:

# "vmstat 1" output:
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 1  0   3796   4320  22844 186712    0    0     0     0 1207 1333 14  3 83  0
 1  0   3796   4320  22844 186712    0    0     0     0 1205 1348 14  4 82  0

# "top" output:
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 2909 freeswit  -2 -10 31240  12m 4188 S 21.3  5.1   1:18.38 freeswitch

4. A conference with 5 PCMA channels:

# "vmstat 1" output:
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0 122888  36440  58244    0    0     0     0 1458  844  7  6 87  0
 0  0      0 122896  36440  58244    0    0     0     0 1440  814  6  4 90  0

# "top" output:
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 8124 freeswit  -2 -10 34208  13m 4224 S 12.1  5.5   1:29.85 freeswitch

Outcome: it’s possible to build a pretty decent small PBX for SOHO usage with this hardware. In all cases the voice quality was absolutely fine.

UPD1: a conference call with automatic recording into MP3: the CPU load jumps to 60% every few seconds, and the conference experiences significant delays and clippings. With WAV recording, everything runs smoothly, and not much different from the above results.

, , ,

  1. #1 by Bret on September 17, 2012 - 1:18 pm

    What version of Linux did you use on teh Alix? I’m about to do the same thing and came across your blog post..

    Thanks

    • #2 by txlab on September 17, 2012 - 1:46 pm

      It’s Voyage Linux, see my other posts with the same tag

  2. #3 by John on February 24, 2020 - 7:52 pm

    I have 3 boards alix 2d13 with latest voayage lunux and i would like to use them with freeswitch. Unfortunately all my attempts failed to make it work.it compiles without errors from git bit it does not start. Any ideas, please?

Leave a comment