gallery blog

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 requests

Server 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.

© 2007 Jan Scholten | Webhosting by rootsvr.de | Design by Flavia Schoenleber | Stand 03/2007