Performance Model for the Pool Size Behavior in Apache HTTP Server Software

Abstract

The operation of the Web server’s software architecture is generally characterized by the processing model and the pool size behavior. The processing model defines a way for a Web server software to organize (process or threading based) itself into more simultaneously running tasks to serve concurrent HTTP requests. The pool size behavior determines how many HTTP processes (or threads) are available to serve the incoming TCP (HTTP) requests. This paper considers the dynamic pool size behavior with the processing model, called prefork, in the Unix version of Apache, one of the most widely used software solutions for Web servers used in the Internet nowadays. The dynamic pool size behavior in the prefork version of Apache makes the number of available HTTP processes to depend on the load of connection requests offered to the web server. This paper proposes, for the first time, a queuing model to approximate the performance of the dynamic pool size behavior implemented in the Unix version of Apache. In order to have a mathematically tractable analytical model, we assume the number of Apache server processes follow the Markovian property. Numerical results computed by the analytical model are compared with the results obtained by measurement of the Apache HTTP server. The results show clearly that our analytical model can indeed predict the performance of the pool size behavior of the Apache HTTP server with good accuracy.

7 Figures and Tables

Cite this paper

@inproceedings{Do2006PerformanceMF, title={Performance Model for the Pool Size Behavior in Apache HTTP Server Software}, author={Tien Van Do and Ram Chakka and T. X. Le Nhat and Udo R. Krieger}, year={2006} }