Click here for full text:
Exploring the Performance of Select-based Internet Servers
Brecht, Tim; Ostrowski, Michal
Keyword(s): Internet servers; Web servers; performance; select; event dispatching
Abstract: Several previous studies have examined techniques for improving Internet server performance by investigating and improving operating system support for event- dispatching mechanisms. These studies have been mainly motivated by the commonly held belief that the overhead incurred in obtaining network I/O events using the select system call was too high to be used in environments with high request loads and large numbers of concurrent connections. However, recent work by Chandra and Mosberger  shows that a properly implemented select-based server can outperform servers that utilize new and improved event-dispatching mechanisms that are significantly more scalable than select. In this work we conduct a detailed investigation into precisely why the Chandra and Mosberger server performs well. We use our findings to further improve the performance of select- based servers and provide insights that we believe are key to understanding and improving the performance of Internet server applications. We find that an essential ingredient required to obtaining good performance in heavily loaded Internet servers is the ability to control the flow of work into and through the server. By employing controls that enable the server to both accept new connections at a high rate and make forward progress on existing connections, we are able to increase peak server throughput by 14 - 21% when compared with the server used by Chandra and Mosberger. Additionally, the differences in performance obtained using our new approach increase substantially as the workload intensifies.
Back to Index