USENIX 2001 Abstract
Scalability of Linux Event-Dispatch Mechanisms
Abhishek Chandra, University of Massachusetts, Amherst, and David Mosberger, HP Labs
Abstract
Many Internet servers these days have to handle
not just heavy request loads, but also increasingly face large numbers
of concurrent connections. In this paper, we discuss some of the event-dispatch
mechanisms used by Internet servers to handle the network I/O generated
by these request loads. We focus on the mechanisms supported by the Linux
kernel, and measure their performance in terms of their dispatch overhead
and dispatch throughput. Our comparative studies show that POSIX.4 Real
Time signals (RT signals) are a highly efficient mechanism in terms of
the overhead and also provide good throughput compared to mechanisms like
select() and /dev/poll. We also look at some limitations
of RT signals and propose an enhancement to the default RT signal implementation
which we call signal-per-fd. This enhancement has the advantage of significantly
reducing the complexity of a server implementation, increasing its robustness
under high load, and also potentially increasing its throughput. In addition,
our results also show that, contrary to conventional wisdom, even a select()
based server can provide high throughput, even though it has high overhead,
if its overhead is amortized by performing more useful work per select()
call.
- View the full text of this paper in
HTML,
PDF, and
PostScript.
The Proceedings are published as a collective work, © 2001 by the USENIX Association. All Rights Reserved. Rights
to individual papers remain with the author or the author's employer.
Permission is granted for the noncommercial reproduction of the complete
work for educational or research purposes. USENIX acknowledges all
trademarks within this paper.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.
|