lighttpd-1.5.0-pre

February 03, 2007

Latest Pre-Release

Changes

On the way from 1.4.x to 1.5.0 many things have been improved, changed and added and we try to keep track of them to make it easier for user to migrate their configuration.

  • IMPORTANT requires glib2-2.4.0 or higher
  • mod-fastcgi, mod-proxy and mod-scgi are replaced by mod-proxy-core

Must Read

  • http://blog.lighttpd.net/articles/2007/01/31/threaded-stat
  • http://www.lighttpd.net/2007/02/03/raw-io-performance
  • http://blog.lighttpd.net/articles/2006/12/19/1-5-0-works-on-win32-nativly-again
  • http://blog.lighttpd.net/articles/2006/12/28/lighttpd-powers-5-alexa-top-250-sites

older pre-releases

  • http://blog.lighttpd.net/articles/2006/12/18/pre-release-lighttpd-1-5-0-r1477-tar-gz
  • http://blog.lighttpd.net/articles/2006/11/15/pre-release-lighttpd-1-5-0-r1454-tar-gz
  • http://blog.lighttpd.net/articles/2006/11/14/pre-release-lighttpd-1-5-0-r1435-tar-gz

Benchmarks

February 02, 2007

In the article lighty 1.5.0 and linux-aio we proposed a benchmark suite for measuring the performance for a disk-io-bound application.

http_load

As load-generator we use http_load as it * allows random fetches from a list of URLs * allows a large number of parallel requests * is portable

On the command-line we want to execute it like:

$ ./http_load -verbose -parallel 100 -fetches 10000 urls

file pool

On the machine which supposed to be tested we generate 2 sets of 10Gbyte files. One is of 100,000 files of 100kbyte size, and the other is 1.000 files of 10MByte size.

$ cd $docroot
$ mkdir -p seek-bound/100k/
$ cd seek-bound/100k/
$ for i in `seq 1 1000`; do 
  mkdir -p files-$i; 
  for j in `seq 1 100`; do 
    dd if=/dev/zero of=files-$i/$j bs=100k count=1 2> /dev/null; 
  done; 
done

The file-pool is 10 times larger than the available RAM on the server-host. Based on this disk layout we generate the list of URLs for http_load.

$ find ./seek-bound/100k/ | grep 'files.*/.' | sed 's#\./#http://192.168.2.106/#' > http-load.100k.urls

The same commands are executed for the 10MByte files to generate a file-set which check the performance for large files.

hardware

The test-network is made up of:

  • Netgear GS108, a 8-port Gigabit Switch
  • client:
    • OS: WinXP Prof. 64-bit
    • CPU: AMD64 X2 (dual core) 4200+
    • Network: Intel Pro/1000
  • server:
    • OS: Linux 2.6.16.21-0.25-default x86_64 (OpenSuse 10.1)
    • CPU: AMD64 3000+
    • Network: Intel Pro/1000
    • Modules: stock, but ip_conntrack is rmmod‘ed
    • Disks: 2 SATA disks as RAID1 via the md-driver

The disks are:

Model Number:       ST3160827AS
Serial Number:      5MT02VGJ and 3MT08WDV
Firmware Revision:  3.42
$ cat /proc/mdstat
    Personalities : [raid1]
    md0 : active raid1 sda2[0] sdb2[1]
           155235968 blocks [2/2] [UU]

lighttpd

February 02, 2007

Security, speed, compliance, and flexibility–all of these describe LightTPD which is rapidly redefining efficiency of a webserver; as it is designed and optimized for high performance environments. With a small memory footprint compared to other web-servers, effective management of the cpu-load, and advanced feature set (FastCGI, CGI, Auth, Output-Compression, URL-Rewriting and many more) LightTPD is the perfect solution for every server that is suffering load problems. And best of all it’s Open Source licensed under the revised BSD license.

light footprint + httpd = LightTPD (pronounced lighty)

Web 2.0

lighttpd powers several popular Web 2.0 sites like YouTube, wikipedia and meebo. Its high speed io-infrastructure allows them to scale several times better with the same hardware than with alternative webservers.

This fast web server and its development team create a webserver with the needs of the future web in mind: - Faster FastCGI - COMET meets mod_mailbox - Async IO

Its event-driven architecure is optimized for a large number of parallel connections (keep-alive) which is important for high performant AJAX applications.