Network Server Accelerator HTTP PerformanceWhite Paper

Network Server Accelerator HTTP Performance
Introduction
3
Network Server Accelerator HTTP Performance
Introduction
As the demand for faster and more scalable web service increases, computer system designers have
discovered ways to improve web server performance and scalability by integrating web server functionality
into operating systems. This trend began with system designers adding system interfaces specifically
designed for web servers. Hewlett Packard’s Network Server Accelerator HTTP (NSA HTTP) is an
architecture that provides an in-kernel cache of web pages in HP-UX 11i. This paper describes the
performance improvements achievable with NSA HTTP, and the system tuning needed to achieve these
performance improvements.
Technological Overview
The primary design goal for NSA HTTP is performance. The architecture and implementation reflect the
effects of an emphasis on efficiency throughout the entire product development lifecycle. The results of our
emphasis on efficiency are summarized in the following five performance-enhancing techniques used by NSA
HTTP:
1. Serving content from RAM eliminates disk latency and I/O bandwidth constraints.
2. In-kernel implementation decreases transitions between kernel and user mode.
3. Tight integration with the TCP protocol stack. This allows efficient event notification and data transfer.
In particular, a zero-copy send interface reduces data transfer by allowing responses to be sent directly
from the RAM-based cache.
4. Deferred-interrupt context processing removes the overhead associated with threads.
5. Re-use of data structures and other resources reduces the lengths of critical code paths.
NSA HTTP Product Description
Although our discussion thus far has focused almost exclusively on Web servers, NSA HTTP is actually
implemented using a general-purpose architecture that can be applied to essentially any networking server.
The architecture provides a generic framework (hereafter referred to as the “NSA framework”) that enables
efficient processing of network requests. A complete solution is realized by adding to the NSA framework
support for one or more specific application-layer protocols, such as HTTP. The NSA framework provides
transparency to user space applications by creating an instance of the accelerator whenever an application
listens on a particular port.
The NSA framework’s generic functionality is implemented as an extension of socket layer. It provides the
following three functions: