A formal approach to protocol offload for web servers
Sola-Sloan, Juan M.
CollegeCollege of Engineering
DepartmentDepartment of Electrical and Computer Engineering
MetadataShow full item record
The use of networks as computational tools has been fundamental in Com- puter Information Science and Engineering research. As computers have evolved, the demands for faster data transmission have incremented. Protocol processing and application processing compete for a share of CPU time when the underlying network evolves. O²oad Engines have been proposed as ways to alleviate the CPU of the host of the cost of processing the protocols used in an end-to-end communication. These engines are proposed as part of the network interface hardware or as a component near or even inside the CPU. However, an increase in performance is not guaranteed after the installation of this type of engine. The operating system of the host is capable of processing the protocols faster than the engine in some particular occasions. A probabilistic model that estimates the performance metrics of utilization and delay, before and after extracting the protocol processing from the CPU of the host is presented in this document. This novel approach focuses on solving the issues presented by abstracting the inherent characteristics of protocol processing. A test bed was setup to validate the analytical model. The test bed was designed using an emulation-based approach mixed with a real implementation to reproduce the behavior of a TCP O²oad Engine installed as part of a server that runs Apache 2.2. The ¯le system used for populating the Web server has been divided into ¯ve di®erent classes based on its sizes. Each ¯le class has been requested using benchmarks to stress the server in di®erent ways. The analysis of the results obtained shows that the analytical model estimates the utilization and delay of the system. The analysis shows that, for some cases, the inclusion of an o²oad engine improves overall system performance. The in- clusion of the model into the operating system can be used to determine when and which objects are going to be handled by the o²oad engine and which are going to be handled by the operating system. Also, by using our model, we can provision the operating system with the capability of balancing the load between the o²oad engine and the host.