Test platform

The tests were conducted on the same system, a PIII 500MHz system with 192 megabytes of RAM. The motherboard is an Asus P2B-D dual processor motherboard with one processor installed. All tests were conducted through the local loopback adapter.

Operating systems tested

The tests were conducted on a Linux 2.2.10 based system (initially a Redhat 6.0 system, later upgraded to 2.2.10) and on a FreeBSD 3.2 based system (initially a 3.1 installation upgraded to 3.2). The tests were conducted on both platforms with a dynamically linked libperl.so. The software used was Perl 5.00503, Apache 1.3.6, and mod_perl 1.21.

Methodology

The tests were conducted with this script. The script was run three times and the results from the third run is what appears below. This httpd.conf was used on both platforms with no modifications. The directory structure was identical. The only different files in either system were the platform-dependant executables.

The tests

The following URLs were tested.

URLHandler
http://localhost/Flat html
http://localhost/index.htmlFlat html
http://localhost/mp/mod_perl handler
http://localhost/cgi-bin/benchC CGI executable
http://localhost/cgi-bin/bench.cgiPerl CGI script

Results

URLLinuxFreeBSD
http://localhost/766.11 requests/second860.76 requests/second
http://localhost/index.html996.41 requests/second1183.64 requests/second
http://localhost/mp/518.24 requests/second568.28 requests/second
http://localhost/cgi-bin/bench210.19 requests/second154.94 requests/second
http://localhost/cgi-bin/bench.cgi7.22 requests/second6.94 requests/second

Note: The difference in the first two tests is entirely inside of Apache. It would seem that Apache having to search for a default file when not given one tends to slow things down.