—This paper evaluates techniques for improving operating system and network protocol software support for high-performance World Wide Web servers. We study approaches in three categories: i.e., new socket functions, per-byte optimizations, and per-connection optimizations. We examine two proposed socket functions, i.e., acceptex( ) and send file( ), comparing send file( )’s effectiveness with a combination of mmap( ) and writev( ). We show how send file( ) provides the necessary semantic support to eliminate copies and checksums in the kernel, and quantify the benefit of the function’s header and close options. We also present mechanisms to reduce the number of packets exchanged in an HTTP transaction, both increasing server performance and reducing network utilization, without compromising interoperability. Results using WebStone show that our combination of mechanisms can improve server throughput by up to 64%, and can eliminate up to 33% of the packets in an HTTP exchange. Res...
Erich M. Nahum, Tsipora P. Barzilai, Dilip D. Kand