We often hear the questions:
How fast are OpenSER or SER in a real world environment?
How do SER and OpenSER compare?
We decided to answer these questions and created a detailed performance test for OpenSER and SIP Express Router. To simulate a production environment, the SIP proxy under test queries an external OSP server for routing information on each and call and then reports call detail records to an external OSP server. Five destinations are returned to the SIP proxy for each call in random order. Four of the five destinations simulate call failure scenarios so the SIP proxy must retry the call an average of two times before the call is completed. These tests were performed on a single core of an Intel Xeon 5140 2.33 GHz CPU.
Here is a brief summary of what we learned. For all the test details, click here.
By all measures, OpenSER V1.2 is significantly better than OpenSER V1.1.
For production operation (with call retries and CDR reporting), we suggest the following simple guideline for sizing server hardware to operate at 60% CPU utilization for OpenSER V1.2 and SER V2.0:
One GHz of CPU processing capacity can manage 60 calls per second.
For example, a server with two, dual core, 3.0 GHz CPUs would effectively have (2 CPUs * 2 cores * 3 GHz per CPU) twelve GHz of CPU processing capacity. This server, hosting either OpenSER V1.2 or SER 2.0, would be able to manage 720 calls per second at approximately 60% CPU utilization.
The following chart plots CPU utilization as a function of calls per second. The results for OpenSER V1.2 and SER 2.0 are identical. The performance of OpenSER V1.2 is 13% better than OpenSER V1.1.
Memory is not a major resource requirement, even at high loads. SER 2.0 has the lowest memory requirement.
The data on the following chart is an indirect indication of Post Dial Delay (PDD). The data presented is the percentage of calls in each test that experienced a PDD greater than six seconds.
The following chart presents the percentage of calls which were not completed successfully for each test. When CPU utilization was less 90%, both OpenSER V1.2 and SER 2.0 completed all calls successfully.