|
ABSTRACT
Event-driven programming has emerged as a standard to implement high-performance servers due to its flexibility and low OS overhead. Still, memory access remains a bottleneck. Generic optimization techniques yield only small improvements in the memory access behavior of event-driven servers, as such techniques do not exploit their specific structure and behavior.This paper presents an optimization framework dedicated to event-driven servers, based on a strategy to eliminate data-cache misses. We propose a novel memory manager combined with a tailored scheduling strategy to restrict the working data set of the program to a memory region mapped directly into the data cache. Our approach exploits the flexible scheduling and deterministic execution of event-driven servers.We have applied our framework to industry-standard webservers including TUX and thttpd, as well as to the Squid proxy server and the Cactus QoS framework. Testing TUX and thttpd using a standard HTTP benchmark tool shows that our optimizations applied to the TUX web server reduce L2 data cache misses under heavy load by up to 75% and increase the throughput of the server by up to 38%.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
G. Banga, P. Druschel, and J. Mogul. Better operating system features for faster network servers. In Workshop on Internet Server Performance, June 1998.
|
| |
2
|
A. Begel, S. McCanne, and S. Graham. BPF+: Exploiting global
|
 |
3
|
Trevor Blackwell, Speeding up protocols for small messages, Conference proceedings on Applications, technologies, architectures, and protocols for computer communications, p.85-95, August 28-30, 1996, Palo Alto, California, United States
|
| |
4
|
Jeff Bonwick. The slab allocator: An object-caching kernel memory allocator. In USENIX94, 1994.
|
 |
5
|
Brad Calder , Chandra Krintz , Simmi John , Todd Austin, Cache-conscious data placement, Proceedings of the eighth international conference on Architectural support for programming languages and operating systems, p.139-149, October 02-07, 1998, San Jose, California, United States
|
 |
6
|
Trishul M. Chilimbi , Bob Davidson , James R. Larus, Cache-conscious structure definition, Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation, p.13-24, May 01-04, 1999, Atlanta, Georgia, United States
|
 |
7
|
Trishul M. Chilimbi , Mark D. Hill , James R. Larus, Cache-conscious structure layout, Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation, p.1-12, May 01-04, 1999, Atlanta, Georgia, United States
|
| |
8
|
D. Clark, V. Jacobson, J. Romkey, and M. Salwen. An analysis of TCP processing overhead. IEEE Communications Magazine, 27(6):23--29, June 1989.
|
| |
9
|
Hewlett-Packard company Information Networks Division. Netperf: A network performance benchmark, February 1996.
|
| |
10
|
Standard Performance Evaluation Corporation. The SPECWeb99 Benchmark. quarterly results. URL: http://www.spec.org/osg/web99/results/.
|
| |
11
|
K. Elmeleegy, A. Chanda, A. L. Cox, and W. Zwaenepoel. Lazy asynchronous I/O for event-driven servers. In USENIX Annual Technical Conference, pages 241--254, Boston, MA, June 2004.
|
 |
12
|
Dawson R. Engler , M. Frans Kaashoek, DPF: fast, flexible message demultiplexing using dynamic code generation, Conference proceedings on Applications, technologies, architectures, and protocols for computer communications, p.53-59, August 28-30, 1996, Palo Alto, California, United States
|
| |
13
|
Fraunhofer Fokus. Sip express router. URL: www.iptel.org/ser.
|
| |
14
|
The Apache Foundation. Apache HTTP server project. URL:http://www.apache.org.
|
| |
15
|
|
| |
16
|
D. Lea. A memory allocator. URL: http://g.oswego.edu/dl/html/malloc.html.
|
| |
17
|
C. Lever, M. Eriksen, and S. Molloy. An analysis of the TUX web server. Technical Report 00--8, University of Michigan, November 2000.
|
| |
18
|
Zeus Technology Limited. Zeus web server. URL: www.zeus.co.uk.
|
| |
19
|
S. McCanne and V. Jacobson. The BSD packet filter: A new architecture for user-level packet capture. In Proceedings of the Winter 1993 USENIX Conference, pages 259--269, San Diego, CA, USA, January 1993. USENIX.
|
| |
20
|
V. S. Pai, P. Druschel, and W. Zwaenepoel. Flash: An efficient and portable web server. In USENIX Annual Technical Conference, pages 199--212, Monterey, CA, June 1999.
|
 |
21
|
|
| |
22
|
SIGCOMM Symposium on Communications Architectures and Protocols, Stanford University, CA, August 1996. ACM Press.
|
| |
23
|
R. Tarjan. Depth-first search and linear graph algorithms. SIAM Journal of Computing, 1(2):146--160, 1972.
|
 |
24
|
Robbert van Renesse, Masking the overhead of protocol layering, Conference proceedings on Applications, technologies, architectures, and protocols for computer communications, p.96-104, August 28-30, 1996, Palo Alto, California, United States
|
 |
25
|
Rob von Behren , Jeremy Condit , Feng Zhou , George C. Necula , Eric Brewer, Capriccio: scalable threads for internet services, Proceedings of the nineteenth ACM symposium on Operating systems principles, October 19-22, 2003, Bolton Landing, NY, USA
|
 |
26
|
Matt Welsh , David Culler , Eric Brewer, SEDA: an architecture for well-conditioned, scalable internet services, Proceedings of the eighteenth ACM symposium on Operating systems principles, October 21-24, 2001, Banff, Alberta, Canada
|
| |
27
|
N. Zeldovich, A. Yip, F. Dabek, R. T. Morris, D. Mazieres, and M-. F. Kaashoek. Multiprocessor support for event-driven programs. In USENIX Annual Technical Conference, pages 239--252, San Antonio, TX, June 2003.
|
|