Published June 24th, 2005

lighttpd is a relatively new webserver. It has quite a few good features. The major design choice, is for it to be completely single threaded and single processed. This means all dynamic content generation is done via FastCGI.

On the sidebar, they have a wonderful link to their benchmarks. Now, we all know that benchmarks are mostly fake, and ApacheBench is one of the worst available tools for doing benchmarks. They make some great claims on their benchmark page:

Quote from http://www.lighttpd.net/benchmark/ :

lighttpd + fastcgi is more than 25% faster than apache + mod_php4.

For static files we already know that lighttpd is 4-6 times faster.

lighttpd is 4-6 times faster in every setup than apache and outperfoms thttpd for large files.

(emphasis is mine)

Well, I can’t stand people perpetuating the myth that Apache HTTPD is slow. I agree, it will never be the fastest in the world, but is is not slow. Therefore, I did some benchmarking of my own.

Hardware

Client:

Linux 2.6.8-2-k7

Debian Unstable

AMD Athlon(tm) XP 1800+

512 MB RAM

RTL-8169 Gigabit Ethernet

Server:

FreeBSD 6.0-CURRENT (Custom Kernel, debugging disabled)

AMD Athlon(tm) XP 1500+

256 MB RAM

3C905-TX Fast Etherlink XL PCI 10/100

Both machines are connected to a 24 port 10/100 switch. Nothing super amazing on the hardware size.

Software

lighttpd:

Version: 1.3.14

Configure Line: ./configure —prefix=/home/chip/bench/lighttpd —with-openssl

Config File: lighttpd.conf

Apache HTTPD:

Version: 2.1.6-alpha

Configure Line: ./configure —with-mpm=worker —prefix=/home/chip/bench/httpd \

--enable-cache=shared --enable-disk-cache=shared \  

--enable-nonportable-atomics --enable-mods-shared=all \  

--enable-ssl=shared  

Config File: httpd.conf

The Test

I grabbed a copy of the Slashdot Frontpage. 62686 Bytes long. This file was request 10,000 times at each concurrent client level. gzip/delfate compression was enabled on both lighttpd and Apache httpd.

The Graph

Insightful Commentary

Oh shit. lighttpd isn’t faster.

Both servers are able to max out the 100mbit LAN after awhile, but Apache HTTPD got to the point first.

Will the people who have >= 1 Gigabit Internet Connections to their servers please stand up?

Yes, you two who pay way too much money, and don’t actually use that much bandwidth, you don’t count.

Yahoo might count, but everyone else sit down. It doesn’t matter which server you use, since both can easily flood your entire maximum outgoing bandwidth.

Conclusion

Changing your webserver doesn’t solve real performance issues. Look at your 200,000 lines of PHP code and slow SQL first.

Disclaimer

Apache httpd had an unfair advantage. I am an Apache Developer, and breath it every single day.

I have no personal grudge against lighttpd, or it’s developers.

I don’t accept that Apache httpd should be slow, and I don’t believe their benchmarks are entirely truthful. Don’t let the myth continue.

Update 7/05/05: I replied to several comments in another post.


Written by Paul Querna, CTO @ ScaleFT. @pquerna