top of page
A Framework for Evaluating Server Performance: Application to SIP Proxy Servers

 

The ubiquitous presence of IP over the past decade has spawned a new set of non- traditional service providers, including Vonage, Skype, and Lingo, that offer voice over IP (VoIP) services with advanced features (e.g., PC-to-phone calling, enhanced voice-mail, multi-ring capability, etc.) at a lower cost to users. Established providers, including Telco and cable companies, are increasingly providing VoIP service to remain competitive and take advantage of the resulting increased efficiencies. Furthermore, with the advent of smartphones, there has been a proliferation of applications that enable users to make voice and video calls using any available Wi-Fi hotspot. Most of these providers and their applications use Session Initiation Protocol (SIP) [1] SIP as the underlying signaling protocol for setting up and managing the voice and video calls.

 

The growing number of customers and devices that make use of SIP is placing an increased demand on the SIP proxy servers (SPS) that make up the core of the SIP network. For service providers to deal effectively with the demand growth they must develop a good understanding of current usage patterns, forecast and plan upgrade needs, and be able to configure a robust service capability for new users. Ultimately, all of these considerations require accurate estimates of the performance capability of the SPS. These factors motivated me to undertake research to evaluate the performance of servers in Internet with a specific focus on SPS servers.

 

Performance evaluation of servers is a broad area of research. As part of my research, I developed specific methodology and made several key contributions. The research ranged from evaluating specific application layer protocol, to tuning underlying OS software, to configuring the hardware to a specific setting. The finding and methodology developed in my research can serve as a basis for further advancement of research for this topic. The specific contributions I have made as part of this research are as follows:

 

Measurement Methodology and tools:

  • I modified the Linux kernel and the OpenSIPS (an open source SPS that was thesubject of the research) source code to obtain packet-level measurements for each SIP message, in order to obtain the service and waiting times within the kernel and the SIP layer. In particular, the kernel modifications can be used for collecting these measurements for any protocol, while the OpenSIPS modifications may be easily adapted to other application servers.

  • I also enhanced SIPp [2], a SIP traffic generator tool, to generate calls with inter-arrival times that follow any user-specified distribution.

 

●  Single-core, single threaded SPS and Queuing Model: For a single SPS server thread on a single-core CPU hardware, I conducted a large set of experiments and modeled the SIP proxy server as an M/G/1 queue. A key component of the model is a parameter that captures the Interrupt overhead, i.e., the impact of Interrupts and resulting cache- misses on socket queue service times [3].

 

●  Single-core, multi-threaded SPS and Drop-Probability Model: I studied the performance of multiple SPS server threads on a single-core CPU hardware. I measured the call rate where the SPS server starts experiencing losses greater than 1% and developed a prediction model for the drop probability as a function of call rate and the number of server threads. I introduced a new parameter to capture the overhead of multiple server threads, in addition to the interrupt overhead.

 

●  Impact of Process Scheduler: I investigated the impact of the Linux scheduler settings on the performance of single-core, multi-threaded SIP proxy servers, in terms of packet service time, waiting time, and packet drop rate (PDR) to capture its effect on user performance. I identified the key scheduler parameters of the Linux scheduler and developed concrete guidelines for tuning these parameters. We identified scheduler settings classified as ’enhanced server mode’ to achieve significant performance improvement [4] [5].

 

●  Multi-core, multi-threaded SPS and Capacity Model: The study was expanded to investigate the impact of the Linux scheduler’s load-balancing algorithm on the performance of multi-threaded SPS running on a multi-core processor system. I conducted extensive experiments and collected data to characterize the packet-level performance of multi-threaded SPS running on multiple cores. Further, we developed practical guidelines for tuning various CFS parameters to optimize SPS performance on a multi-core system. Also we developed a capacity-planning model for estimating the scalability of SPS on a multi-core system [6].

 

 

 

These contributions of my research are extremely useful for service providers and cloud operators. The initial considerations for service providers and cloud operators, when designing their networks are: (a) service availability to end-users, and (b) the cost of operating the network. Furthermore, from an economic standpoint, network operators aim to achieve high server utilization in order to maximize the return on their capital investment. The network operators can achieve these objectives by applying the findings of my research.

References :

[1] J. Rosenberg et al. SIP: Session Initiation Protocol. RFC 3261, June 2002.

 

[2] SIPp. http://sipp.sourceforge.net/.

 

[3] Ramesh Krishnamurthy, George N. Rouskas, “Evaluation of SIP Proxy Server Performance: Packet-level measurements and Queuing Model”, IEEE ICC 2013, Budapest, Hungary.

 

[4] Ramesh Krishnamurthy, George N. Rouskas, “On the Impact of Scheduler Settings on the Performance of Multi-Threaded SIP Servers”, IEEE ICC 2015, London, UK.

 

[5] Ramesh Krishnamurthy, George N. Rouskas, “Performance of Multi-Threaded SIP Servers: The Impact of Scheduler Parameters”, IET Networks, Journal (submitted)

 

[6] Ramesh Krishnamurthy, George N. Rouskas, “Performance Evaluation of Multi-core Multi- Threaded SIP Proxy Servers (SPS)”, IEEE ICC 2016, Kuala Lampur, Malaysia

 

 

 

 

 

 

 

 

 

 

 

 

 

Download Source Code Diffs :

Here we are attaching the modification introduced to the Linux kernel, OpenSIPS and SIPp. The attachments are the README and 'diffs' compared to the base code.

bottom of page