Measuring the impact of event dispatching and concurrency models on Web server performance over high-speed networks

Provides two contributions to the study of high-performance Web servers. First, it outlines the optimizations necessary to build efficient and scalable Web servers and illustrates how we've applied some of these optimizations to create JAWS. JAWS is a high-performance Web server that is explicitly designed to alleviate overheads incurred by existing Web servers on high-speed networks. It consistently outperforms existing Web servers (such as Apache, Java Server, PHTTPD, Zeus, and Netscape Enterprise) over 155 Mbps ATM networks on UNIX platforms. Second, this paper describes how we have customized JAWS to leverage advanced features of Windows NT for multiprocessor hardware over ATM. The Windows NT features used in JAWS include asynchronous mechanisms for connection establishment and data transfer. Our previous benchmarking studies demonstrate that once the overhead of disk I/O is reduced to a negligible constant factor, the primary determinants of Web server performance are the concurrency and event dispatching strategies. Our performance results over a /spl sim/155 Mbps ATM link indicate that certain Windows NT asynchronous I/O mechanisms (i.e. TransmitFile) provide superior performance for large file transfers compared with conventional synchronous multi-threaded servers. On the other hand, synchronous event dispatching performed better for files less than 50 kbytes. Thus, to provide optimal performance, Web servers should be adaptive, choosing to use different mechanisms to handle requests for large files, while using alternative I/O mechanisms for requests for small files.

[1]  Erich M. Nahum,et al.  Performance issues in parallelized network protocols , 1994, OSDI '94.

[2]  Douglas C. Schmidt,et al.  Principles for Developing and Measuring High-performance Web Servers over ATM , 1997 .

[3]  Roy T. Fielding,et al.  Hypertext Transfer Protocol - HTTP/1.0 , 1996, RFC.

[4]  Robert E. McGrath,et al.  Web server technology: the advanced guide for World Wide Web information providers , 1996 .

[5]  Edward A. Fox,et al.  Removal Policies in Network Caches for World-Wide Web Documents , 1996, SIGCOMM.

[6]  Guru M. Parulkar,et al.  The APIC approach to high performance network interface design: protected DMA and other techniques , 1997, Proceedings of INFOCOM '97.

[7]  Edward A. Fox,et al.  Removal policies in network caches for World-Wide Web documents , 1996, SIGCOMM '96.

[8]  Bruce E. Keith,et al.  LADDIS: The Next Generation in NFS File Server Benchmarking , 1993, USENIX Summer.

[9]  Mohan Krishnan,et al.  Pitfalls in Multithreading SVR4 STREAMS and Other Weightless Processes , 1993, USENIX Winter.

[10]  Tim Berners-Lee,et al.  Hypertext transfer protocol--http/i , 1993 .

[11]  Roy T. Fielding,et al.  Hypertext Transfer Protocol - HTTP/1.0 , 1996, RFC.

[12]  Douglas C. Schmidt,et al.  An Object Behavioral Pattern for Demultiplexing and Dispatching Handlers for Asynchronous Events , 1998 .

[13]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[14]  Prashant Jain,et al.  Service Configurator: A Pattern for Dynamic Configuration of Services , 1997, COOTS.

[15]  Michelle Butler,et al.  A Scalable HTTP Server: The NCSA Prototype , 1994, Comput. Networks ISDN Syst..

[16]  Jeffrey C. Mogul,et al.  The case for persistent-connection HTTP , 1995, SIGCOMM '95.

[17]  Bob Francis,et al.  Silicon Graphics Inc. , 1993 .

[18]  Douglas C. Schmidt,et al.  GPERF: A Perfect Hash Function Generator , 1990, C++ Conference.