Scalability of linux event-dispatch mechanisms

Abhishek Chandra, David Mosberger

Research output: Contribution to journalReview articlepeer-review

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 through-put if its overhead is amortized by performing more useful work per select ( ) call.

Original languageEnglish (US)
JournalHP Laboratories Technical Report
Issue number174
StatePublished - Dec 14 2000

Keywords

  • Event dispatching
  • Internet servers
  • Linux
  • Performance
  • Web servers

Fingerprint

Dive into the research topics of 'Scalability of linux event-dispatch mechanisms'. Together they form a unique fingerprint.

Cite this