Solaris 10 verses Linux: Asterisk PBX

Abstract: This article compares the performance characteristics of Asterisk PBX operating on Solaris 10 verses Linux. The author shows how to achieve even greater performance from Asterisk on Solaris 10 by using a native feature available to Solaris. In addition, Solaris 10 SMF (Service Management Facility) scripts are made available to ensure the continuous operation of Asterisk PBX on the Solaris 10 operating system.


Overview

The Solaris 10 Operating System - considered the most advanced UNIX operating system ever - provides many features of interest to telecommunications operators. Of particular importance to operators of converged voice/data services in the telecommunications industry is the VoIP software server known as Asterisk PBX. The Asterisk PBX is offered under an open source license by Digium, Inc.

In this article, we show the performance characteristics of Asterisk PBX as a SIP server on the Linux operating system and the Solaris 10 operating system. We employ the SIPstone benchmark offered by the SIPp application to acquire the results of each test. The SIPp tool used to perform the SIPstone benchmark is offered under an open source license by HP.


What is Asterisk PBX?

From Asterisk.org web site:

Asterisk is a complete PBX in software. It runs on Linux, BSD, and MacOSX and provides all of the features you would expect from a PBX and more. Asterisk does voice over IP in many protocols, and can interoperate with almost all standards-based telephony equipment using relatively inexpensive hardware.

Lab Setup

The list of hardware used is as follows:

  • One Celeron 2.4 GHz with 512 MB RAM
  • One Sun Fire x2100 with Opteron 175 and 2 GB RAM
  • One Windows XP Pro x64 with AMD FX-55 and 4 GB RAM

The list of software used is as follows:

  • CentOS 3.7
  • Solaris 10 1/06
  • Asterisk 1.2.7.1
  • SIPp 1.1 3/15/05

Results

The Celeron was first loaded with the CentOS operating system and Asterisk was built specifically for the hardware used, using the maximum optimizations offered. Once Asterisk was operating, the SIPp benchmark tool was used from a Windows XP Pro x64 system to benchmark Asterisk on CentOS. In all testing, the calls were requested to the voicemail application of Asterisk.

The number of calls per second were raised until the number of retransmissions began to increment. At this point, the calls per second were lowered until no further retransmissions were happening. The number of context switches, user CPU usage, and system CPU usage were monitored using the vmstat command on both operating systems. The numbers shown in Table 1 are the average values during the benchmark process.

During the high loads placed by SIPp, Asterisk segmentation faulted under CentOS but never crashed on the Solaris operating system. It was observed that as time passed, the number of concurrently running voicemail applications caused a great deal of stress on both systems.

After the testing was complete, Solaris 10 was loaded onto the Celeron system and Asterisk was built specifically for the hardware used, using the maximum optimizations offered including the mtmalloc library. Then the same testing procedures as above were employed.

Operating System Calls per second Context Switches User CPU % System CPU %
CentOS 3.7 110 1,200-2,000 <= 48 <= 70
Solaris 10 325 1,800-2,100 <= 44 <= 47
Table 1.

As a last test, Asterisk was compiled on the Sun Fire x2100 and benchmarked. This system was chosen because of its dual-core capabilities. Asterisk was then built with and without the mtmalloc library offered on Solaris 10.

The mtmalloc library offers a large performance gain for multithreaded applications on Solaris. The Asterisk PBX is a highly multithreaded application and frequently allocates/deallocates memory. By using mtmalloc, the performance is dramatically improved. The results of the benchmark with and without mtmalloc are shown in Table 2.

Mtmalloc Linked? Calls per second Context Switches User CPU % System CPU %
no 900 17,000-19,000 <= 66 <= 32
yes 1,400 14,000-15,000 <= 66 <= 28
Table 2.

Solaris 10 Service Management Facility

You may download the SMF scripts for use with Asterisk on Solaris 10 at the Thralling Penguin LLC web site. Additionally, there are instructions available for the installation of the SMF scripts.


Conclusion

By employing your converged voice/data on the Solaris 10 operating system, you are able to increase the number of concurrent calls on equivalent hardware. Additionally, the Solaris 10 operating system includes the Service Management Facility allowing the operating system to monitor and maintain the operational status of Asterisk, should it fail.

Finally, by using Sun Microsystems hardware combined with the Solaris 10 operating system, you are gaining the RAD features of the hardware in addition to increased performance characteristics of Asterisk.


References

Solaris VoIP
http://www.solarisvoip.com/

Sun Microsystems
http://www.sun.com/

CentOS
http://www.centos.org/

Asterisk PBX
http://www.asterisk.org/

SIPp
http://sipp.sourceforge.net/

A Comparison of Memory Allocators in Multiprocessors
http://developers.sun.com/solaris/articles/multiproc/multiproc.html


About the Author

Joseph Benden, Sr. is the owner of Thralling Penguin LLC. Thralling Penguin designs, develops, and extends software technologies for the most demanding business applications, as well as offering VoIP Consulting services.