Scalable Locality-Aware Event Dispatching Mechanism for Network Servers
Hao-Ran Liu and Tien-Fu Chen
Department of Computer Science, National Chung Cheng University, Taiwan
Abstract
Network servers often need
to process a large amount of network events asynchronously. They
usually use select() or poll() to retrieve events from file
descriptors. However, previous researches have shown that these system
calls scale poorly when the number of open connections are
significantly increased. Several kernel-level solutions have been
proposed. In this paper, we first compare several event dispatching
mechanisms available under Linux, and then present our user-level
solution that takes advantage of temporal locality among events while
polling. We show that a memory-based web server with our approach can
have about 20%-30% performance improvement.
The paper published in IEE Proceedings, Software, 2004
The slides for ICOS'02
Related software in this paper:
Test web server source (with event driven threading code)
C source code to make dead connections.
httperf Web server Performance measurement tool
Original dphttpd server source