Web Server Performance Comparison: LiteSpeed 2.1 VS Print
The complete benchmark specs/configuration for both hardware and software are fully disclosed below the graphs.

For past benchmarks, please visit our benchmark archive.

Small Static File (Non-Keepalive) Benchmark

Due to the SMP server hardware and SMP scalability of LiteSpeed Enterprise server, real performance is not reflected via a single test client. In response, we used 2 test clients from 2 separate machines to showcase the SMP scalability of the Enterprise edition server. Apache and non-Enterprise editions of LiteSpeed server did not show meaningful increase in the 2 client test and thus are not included in the final result.

Concurrency Apache 1.3.33 Apache 2.0.55 thttpd 2.25b Lighttpd 1.4.8 LiteSpeed 2.1 Standard LiteSpeed 2.1 Enterprise LiteSpeed 2.1 Enterprise (2 Clients)
1 2059 2151 2296 2355 2631 2620 -
10 9731 10705 11185 11566 11527 15878 20100
100 9241 10064 11897 11558 13173 17674 27312
200 9581 10010 11730 11920 13178 16750 26808
500 8664 9543 11540 11539 12032 16035 25213
1000 8590 9236 10867 10570 11442 15232 24820


Small Static File (Keepalive) Benchmark



Concurrency Apache 1.3.33 Apache 2.0.52 thttpd 2.25b Lighttpd 1.4.8 LiteSpeed 2.1 Standard LiteSpeed 2.1 Enterprise LiteSpeed 2.1 Enterprise (2 Clients)
1 3678 3641 2288 3992 5546 5540 -
10 15782 16714 10760 15218 21720 37764 42000
100 15384 15926 11968 14909 21687 56721 91352
200 14825 15216 11580 14865 21663 58411 93143
500 14734 15094 11230 13888 21505 57045 83010
1000 13478 14241 10906 14056 17403 52137 81050


Test Web Server Software

The following web servers are included in the web server performance test.

Web Server Version Configuration
Apache 1.3.33 Link
Apache 2.0.52 (prefork mpm) Link
thttpd 2.25b Link
lighttpd 1.4.8 Link
LiteSpeed 2.1 Standard Default + Security:Per Client Throttle disabled.
LiteSpeed 2.1 Professional Default + Security:Per Client Throttle disabled.
LiteSpeed 2.1 Enterprise Default + Security:Per Client Throttle disabled.

We'd like to include Zeus and SunOne in the benchmark test as well, however, their license agreements do not allow us to publish any benchmark results, so we skipped them. You are welcome to share your test results on our forum if you have the resource to perform a benchmark test like ours. We believe a lot of people are interested.

Test Server Environment

Type Version
Network Switch D-Link 8Port Gigabit Switch DGS-1008D
Server Hardware Dell PowerEdge SC1425
CPU: Dual Intel Xeon 3.0GHz/800MHz FSB/2MB L2 Cache
Memory: 1024MB DDR2 400MHz(2X512MB) ECC DIMM
Hard Drive: 80GB 7200RPM SATA drive
NIC: on board Intel PRO/1000 Gigabit Adapter
Server OS CentOS 4.1/Kernel 2.6.9-22.0.1.ELsmp

Note: Since the new I/O event dispatcher sys_epoll() in 2.6 kernel scales better in production mode, so in this test we configured both LiteSpeed and Lighttpd with epoll, even though, the benchmark results may looks a little better for both servers with standard event dispatcher poll().

Test Client Environment

Type Version
Client Software ApacheBench (ab) 1.3.33
Client Hardware Custom Built
Motherboard: MSI K7D
CPU: Dual Athlon MP 2000+/266FSB/256KB L2 Cache
Memory: 1GB PC2100
Hard Drive: 36GB 10000RPM SCSI drive
NIC: Intel PRO/1000 Gigabit
Client OS RedHat 8.0/Kernel 2.4.22smp

Test Result Procedures

Each test case was run three times, and the best result is used. Server was rebooted after testing each server software.

Small static file benchmark

A small static file with 100 bytes in size is used in this test. The reasons of using a small file are: to avoid network bandwidth bottleneck, to reveal the performance of web server software instead of kernel.

Benchmark Command/Source
Static Non-KeepAlive ab -n 100000 -c [concurrent level] http://[ip]:[port]/100.html

<html>
<head>
<title>Test page</title>
</head>
<body>
<h1>This is a test page</h1>
</body>
</html>
Static KeepAlive ab -k -n 100000 -c [concurrent level] http://[ip]:[port]/100.html

<html>
<head>
<title>Test page</title>
</head>
<body>
<h1>This is a test page</h1>
</body>
</html>
CGI ab -n 3000 -c [concurrent level] http://[ip]:[port]/cgi-bin/echo

Used the C CGI/FCGI example in fcgi 2.4 package which prints out all CGI environment variables.
Fast-CGI ab -n 10000 -c [concurrent level] http://[ip]:[port]/cgi-bin/echo

A simple C++ Fast CGI script (echocpp) is used in this test, it is a modified version of the C++ FCGI example in fcgi 2.4 package. It has been modified to only generate a constant response with 162 bytes in the response body. The part that changes from request to request has been removed because ApacheBench does not like responses with variable response body size.
PHP/Hello ab -n 10000 -c [concurrent level] http://[ip]:[port]/hello.php

<?
echo "Hello, World!";
?>
PHP/Info ab -n 10000 -c [concurrent level] http://[ip]:[port]/phpinfo.php

<HTML>
<BODY>
<? phpinfo() ?>
</BODY>
</HTML>
Perl ab -n 10000 -c [concurrent level] http://[ip]:[port]/hello.pl

#!/usr/bin/perl

print <<OUT;
Content-type: text/html

<html><head></head><body>
<h1>Hello World</h1>

Hello World!

<body></html>

OUT