SIP server performance on multicore systems
Abstract
This paper evaluates the performance of a popular open-source E. C. Hu Session Initiation Protocol (SIP) server on three different multicore architectures. We examine the baseline performance and introduce three analysis-driven optimizations that involve increasing the number of slots in hash tables, an in-memory database for user authentication information, and incremental garbage collection for user location information. Wider hash tables reduce the search time and improve multicore scalability by reducing lock contention. The in-memory database reduces interprocess communication and locking. Incremental garbage collection smooths out peaks of both central processing unit and shared memory utilization, eliminating bursts of failed SIP interactions and reducing lock contention on the shared memory segment. Each optimization affects single-core performance and multicore scalability in different ways. The overall result is an improvement in absolute performance on eight cores by a factor of 16 and a doubling of multicore scalability. Results somewhat vary across architectures but follow similar trends, indicating the generality of these optimizations. ©Copyright 2010 by International Business Machines Corporation.