Lighttpd Benchmarks mit XCache
Benchmarks
Um mal den Unterschied wzwischen Apache ohne php cache und Lighty mit Cache zu testen habe icg testweise die alte Installation (Apache suExec/Fastcgi) gegen Lighty fastcgi mit xcache getestet. 
Folgende Ergebnisse unten. 
Bei statischen Seiten tuen sich beide wenig (hatte bei eine Concurrency von 100 jeweils rund 133 reqs/sec. 
Bei dynamischen Seiten ist ein gravierender Unterschied zu sehen. 
7 reqs/sec (Apache) vs 26 reqs/sec (Lighty) um Faktor 4 schneller, die Test wurden von einer DSL Leitung zum Server gemacht, diese kann selbstverständlich die Leitung beeinträchtigen. Für den Test haben Lighty und Apache auf den gleichen (realen) Daten gearbeitet. Lighty auf Port 81, Apache auf Port 80. Getestet wurde auf einer Gallery Instanz mit rund 4000 Bilder in vielen SubAlben.
Apache ohne Cache
horus:~#  /usr/sbin/ab2 -dS -n 1000 -c 10 http://meinserver.tld/gallery2/main.php 
This is ApacheBench, Version 2.0.41-dev 
<$Revision: 1.141 $> apache-2.0  Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ 
Benchmarking meinserver.tld (be patient) 
Completed 100 requests 
...
Finished 1000 requestsServer Software:        Apache  Server Hostname: meinserver.tld  Server Port:            80 
Document Path:          /gallery2/main.php 
Document Length:        0 bytes 
Concurrency Level:      10 
Time taken for tests:   140.821320 seconds 
Complete requests:      1000 
Failed requests:        0 
Write errors:           0 
Non-2xx responses:  1000 
Total transferred: 344000 bytes 
HTML transferred:       0 bytes 
Requests per second:    7.10 [#/sec] (mean) 
Time per request:       1408.213 [ms] (mean) 
Time per request:       140.821 [ms] (mean, across all concurrent requests) 
Transfer rate:          2.38 [Kbytes/sec] 
received    Connection Times (ms)                min   avg   max  Connect:       15    15   29 
Processing:   149  138636206 
Total:        164  140136235 
Lighttpd mit xcache 
horus:~#  /usr/sbin/ab2 -dS -n 1000 -c 10 http://meinserver.tld:81/gallery2/main.php 
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.141 $> apache-2.0  Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ 
Benchmarking meinserver.tld (be patient) 
Completed 100 requests
..
Finished 1000 requests 
Server Software:        lighttpd/1.4.13 
Server Hostname: meinserver.tld 
Server Port:            81 
Document Path:          /gallery2/main.php 
Document Length:        0 bytes 
Concurrency Level:      10 
Time taken for tests:   38.171552 seconds  Complete requests: 
1000  Failed requests:        0 
Write errors:           0 
Non-2xx responses:      1000 
Total transferred:      334000 bytes 
HTML transferred:       0 bytes 
Requests per second:    26.20 [#/sec] (mean) 
Time per request:       381.716 [ms] (mean) 
Time per request:       38.172 [ms] (mean, across all concurrent requests) 
Transfer rate:          8.54 [Kbytes/sec] 
received    Connection Times (ms)                min   avg   max  Connect:       13    15   32 
Processing:   120   357 8527 
Total:        133   372 8559 
Ok.. was lernen wir Lighty + xcache etwa Faktor 4 schneller und: Apache hat etwa 15 Fastcgi Instanzen gespawnt, lighty nur seine 5 Stück benutzt..   RAM: Apache 328MB (mit allen gespawnten Instanzen) 
RAM: Lighty 3,789MB (eine Instanz) Morgen teste ich lighty mit ohne xcache (vermute ähnliche oder bessere Geschwindigkeiten als Apache) 
Test auf einer nicht so php lastigen eigenen Homepage:
Apache: 28,61 req/sec 
Lighty/Xcache 52,9 req/sec 
Nachtrag: Zur vergleichbarkeit habe ich XCache auch mal beim Apache aktiviert und den Test nochmal gestartet. 
Die Gallery ist deutlich schneller geworden und schlägt sich jetzt mit etwa 22 req/sec (Apache) gegen etwa 27 reqs/sec (Lighttpd) Dieser Unterschied kann natürlich auch durch die anderen module (mod_security!) kommen, einen ausführlicheren Test kommt bei Zeiten. 
Der Ramverbrauch ist bei Lighty trotzdem um einen enormen Faktor geringer.
Was fehlt noch?
SSL aktivieren
Kein Problem:$SERVER["socket"] == "10.0.0.1:443"
{
ssl.engine = "enable"
ssl.pemfile = "www.example.org.pem"
ssl.ca-file = "/etc/CA.crt" server.name = "www.example.org" server.document-root = "/www/servers/www.example.org/pages/" } * rewrite testen (Wordpress/Wiki) * Performancetests: Mit Apache/lighty xcache ohne xcache, mit größerem xcache mit Variablen cache, mit 10000 Aufrufen und einer concurrency bis 100. === Zusammenfassung === Wi o.g. lassen sich zumindest die Basisinstallationen einfach für lighttpd übernehmen. Einschränkungen gibt es aber auch hier: * Lighttpd braucht eigene rewrite conditions und ist nicht kompatibel zu mod_rewrite von Apache * .htaccess gibt es bei Lighttpd nicht, sondern das muß über mod_auth in der lighttpd conf erlegt werden * .. Andere Dinge die man ausprobieren sollten: * xcache oder APC als OpCode-Cache (taugt, wenn ja wieviel Speicher braucht das, was bringt es? * Lighttpd ermöglicht einfaches Trafficshaping, indem man einzelnen Servern Bandbreite einräumt: $HTTP["host"] == "www.cyrin.de" { server.kbytes-per-second = 128 } * OpenSSL habe ich noch nicht in der VMWare getestet ebenso wie die diversen extra Subdomains, das sollte aber kein Problem darstellen.
 
         

