by C. P. Wright,
E. M. Nahum,
D. Wood,
J. M. Tracey,
and E. C. Hu
This paper evaluates the performance of a popular open-source 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.