LiteSpeed Technologies
Download Download     Blog Blog     Wiki Wiki     Forum Forum     Store     Contact Contact    
Web Server Performance Comparison: LiteSpeed 2.0 VS PDF Print E-mail

Tested Web Server Software

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

  • Apache 1.3.33
  • Apache 2.0.52 (prefork mpm)
  • IIS 6.0
  • LiteSpeed 2.0 Standard
  • LiteSpeed 2.0 Professional
  • thttpd 2.25b
  • TUX 3.2
  • boa 0.94.14rc20
  • lighttpd 1.3.12
  • Aolserver 4.0.7
  • Mathopd 1.5p3

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 Environment

Network Switch: D-Link Gigabit Eight Ports Switch DGS-1008D

Server Hardware: Dell PowerEdge SC1600

  • CPU: Single Intel Xeon 2.4GHz/533FSB/512KB L2 Cache
  • memory: 256MB ECC PC2700
  • Hard Drive: 36GB 10K RPM SCSI drive Seagate ST336607LW
  • NIC: on board Intel PRO/1000 Gigabit Adapter

Server Software:

  • Fedora Core 3 with stock kernel 2.6.10-1.760
  • IIS 6.0 on Windows 2003 Enterprise

Web Server Configurations:

Note: Both LiteSpeed and lighttpd support the new I/O event dispatcher sys_epoll() in 2.6 kernel, but interestingly, we found that for both server, the benchmark results are not as good as that with standard event dispatcher poll(), at least when tests are performed across network with concurrent level <=1000. So we just use poll() in all of our tests. The results could be completely different for local loopback tests.

Client Hardware: MSI K7D

  • CPU: Dual Athlon MP 2000+/266FSB/256KB L2 Cache
  • memory: 1GB PC2100
  • Hard Drive: 36GB 1000RPM SCSI drive
  • NIC: Intel PRO/1000 Gigabit

Client Software:

  • OS: RedHat 8.0 with kernel 2.4.22smp
  • Test Tool: ApacheBench (ab) 1.3.33

Results

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.

Non-KeepAlive test: ab -n 100000 -c <concurrent level> http://<ip>:<port>/100.html

Concurrent Levels Apache 1.3.33 Apache 2.0.52 IIS 6.0 LSWS 2.0 Standard LSWS 2.0 Pro TUX 3.2 thttpd 2.25b Lighttpd 1.3.12 Aolserver 4.0.7 Mathopd 1.5p3 Boa 0.94.14 rc20
1 1051 1081 1437 1300 1413 1446 1264 1281 1118 1217 1280
10 2987 2851 7416 9202 9300 9653 7697 9254 4143 7187 8145
100 3021 2874 -* 11232 14566 18601 9451 10998 4020 9584 9404
200 2981 2851 -* 10968 14184 17418 9330 10708 3850 9441 9260
1000 2988 2909 -* 10330 13229 16417 8995 10430 2835 9260 9133

* There must be some kind of Anti-DoS feature in IIS 6.0, it drops all connections when concurrent level is higher than 10.

KeepAlive test: ab -n 100000 -c <concurrent level> -k http://<ip>:<port>/100.html

Concurrent Levels Apache 1.3.33 Apache 2.0.52 IIS 6.0 LSWS 2.0 Standard LSWS 2.0 Pro TUX 3.2 thttpd 2.25b lighttpd 1.3.12 aolserver 4.0.7 Mathopd 1.5p3 Boa 0.94.14 rc20
1 2621 2350 3297 3409 3740 3525 1242 3136 2679 3116 3140
10 5122 4744 20153 20933 23073 21440 7742 19215 6919 13833 16570
100 5163 4673 33025 24576 45703 53304 9361 17253 7564 14697 17094
200 5094 4617 30721 23752 41237 40485 9266 16730 8149 14265 16313
1000 4837 4644 27427 16756 37271 32905 8844 15475 6888 13041 15037

 

CGI benchmark

A simple C CGI script (echo) is used in this test. It is the C CGI/FCGI example in fcgi 2.4 package which prints out all CGI environment variables.

CGI Test: ab -n 3000 -c <concurrent level> http://<ip>:<port>/cgi-bin/echo

Concurrent Levels Apache 1.3.33 Apache 2.0.52 LSWS 2.0 Standard LSWS 2.0 Pro thttpd 2.25b lighttpd 1.3.12 aolserver 4.0.7 Mathopd 1.5p3 Boa 0.94.14rc20
1 304 319 450 481 40* 303 298 348 461
10 340 368 529 581 38* 373 310 436 667
100 338 356 384 569 40* 373 257 395 623
200 321 350 262 566 36* 351 272 364 563

* Don't know what's wrong with thttpd's CGI performance

 

Fast CGI benchmark

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.

Fast CGI Test: ab -n 10000 -c <concurrent level> http://<ip>:<port>/cgi-bin/echo

Concurrent Levels Apache 1.3.33 Apache 2.0.52 LSWS 2.0 Standard LSWS 2.0 Pro lighttpd 1.3.12
1 814 808 1019 1164 1071
10 1733 1706 4500 6064 4334
100 1753 1733 5030 6020 4006
200 1656 1661 4856 5955 4078
1000 1862 1806 4737 5773 3529

 

PHP script benchmark: mod_php vs. FastCGI PHP

Two simple PHP scripts are used in this test, one is hello.php which prints out "hello world", another one is phpinfo.php which only calls phpinfo(). There is no PHP opcode accelerator configured for all servers as it does not have big performance impact for those two simple php scripts.

hello.php test: ab -n 10000 -c <concurrent level> http://<ip>:<port>/hello.php

Concurrent Levels Apache 1.3.33 Apache 2.0.52 LSWS 2.0 Standard LSWS 2.0 Pro lighttpd 1.3.12
1 678 726 733 837 646
10 1399 1392 2117 2460 1401
100 1417 1410 2014 2601 1655
200 1420 1409 1956 2556 1714
1000 1432 1434 1930 2400 1593

 

phpinfo.php test: ab -n 10000 -c <concurrent level> http://<ip>:<port>/phpinfo.php

Concurrent Levels Apache 1.3.33 Apache 2.0.52 LSWS 2.0 Standard LSWS 2.0 Pro lighttpd 1.3.12
1 381 372 473 483 376
10 420 435 627 655 428
100 418 433 609 632 423
200 418 428 605 629 420
1000 417 425 592 623 399

 

Perl script benchmark: mod_perl vs. lsperld

A Hello World Perl script, which generates a response with 77 bytes in the response body, is used in this test. Apache 2.0 is not tested as there are too much trouble to install mod_perl for both Apache 1.3 and 2.0 on the same server.

Apache 1.3 is configured to use Apache::Registry to handle perl scripts.

Lsperld is a Perl Fast CGI script which can run CGI perl script in a persistent Perl interpreter, just like Apache mod_perl's Apache::Registry, compiled perl script is cached in memory.

hello.pl test: AB -n 10000 -c <concurrent level> http://<ip>:<port>/hello.pl

Concurrent Levels Apache 1.3.33 LSWS 2.0 Standard LSWS 2.0 Pro
1 647 759 840
10 1143 1600 2004
100 1144 2006 2240
200 1140 2032 2297
1000 1167 1965 2207

 

Conclusion

We got the following conclusion based on above benchmark results:
  1. Performance of Apache 1.3 and 2.0 are very close. There is no performance advantage for 2.0 at all. We did not test the other worker MPM of Apache 2.0 as it is more likely that prefork MPM will be used in production on Unix/Linux system.
  2. Comparing to Apache, LiteSpeed Web Server are up to 3-7 times faster when serving static content, and up to 50-100% faster when serving dynamic content, including CGI, FastCGI, PHP and Perl. Our earlier test shows that Apache's performance degrades even further when distributed configuration override (.htaccess) is enabled, however, LiteSpeed web server is barely affected. So, we will see even larger performance difference in a shared hosting environment.
  3. Comparing to those pure user land content accelerator like thttpd, boa and mathopd, LiteSpeed Web Server has much better performance in serving static content.
  4. Comparing to lighttpd, LiteSpeed Standard Edition has better performance in almost all tests.
  5. Comparing to the kernel content accelerator, TUX, thank to its in-kernel shortcut and simple feature set, LiteSpeed Web Server Pro is slightly slower in the non-keep-alive test, but is able to catch up in the keep-alive test.
  6. The overall performance of LiteSpeed web server, including both Standard and Professional Editions, is better than all other web server software tested.

LiteSpeed Web Server is a one-stop solution for high performance web serving environment. If you really want your web site stop suffering from all kinds of performance problems, and bring the most out of your existing server hardware, you should seriously consider switching to LiteSpeed. It will save all your headaches on optimizing your web infrastructure, as we have done all the hard work for you already.



 

© Copyright 2003-2011 LiteSpeed Technologies, Inc. All rights reserved. Privacy Policy.