====== Leistungsvergleich lighttpd und Apache ====== ===== Aufgabenstellung ===== Die Leistungsfähigkeit von [[http://www.lighttpd.net/|lighttpd]] und [[http://httpd.apache.org/|Apache]] soll qualitativ untersucht werden. Im Vordergrund steht dabei der Einsatz als Server für drei Webpräsenzen, die bereits seit einiger Zeit online sind. Die Software wurde dazu auf zwei isolierte Testsysteme übertragen. Betrachtet wurde die Performance auf einem Single- und einem Dual-Core-System, ausserdem der Effekt eines [[wp>List_of_PHP_accelerators|PHP-Bytecode-Caches]], konkret [[http://xcache.lighttpd.net/|XCache]].\\ Quantitative Aussagen soll dieser Benchmark nicht liefern, da hierfür vor allem Optimierungen an der verwendeten Software und Hardware notwendig sind, die sehr stark von Einzelfall abhängen. ===== Testumgebung ===== Die Leistungsfähigkeit von [[http://www.lighttpd.net/|lighttpd]] und [[http://httpd.apache.org/|Apache]] wurde mit zwei Servern getestet: * Intel Pentium 4 1,6 GHz, 2 GB RAM, 2x 40GB ATA - RAID 1 * AMD Athlon 64 X2 1,8 GHz, 3 GB RAM, 2x 120 GB SATA - RAID 1 Beide System waren über ein Cross-Over-Kabel direkt mit dem Client verbunden, die Übertragungsgeschindigkeit fest auf 100 MBit/s((100 MBit/s ist in den meisten Hosting-Rechenzentren immer noch die Regel.)) eingestellt. Auf dem Client wurden mit mit dem Programm [[http://httpd.apache.org/docs/2.2/programs/ab.html|ab (Apache Benchmark)]], jeweils 10 Minuten (-t 600) lang, Webseiten auf einem der Server abgerufen und die Anzahl der erfolgreichen Antworten pro Sekunde protokoliert (req/s). Nach jedem Testlauf wurden die Logdateien gelöscht und der Server neu gestartet. Jeder Testlauf wurde dreimal durchgeführt und der Durschnittswert gebildet. Die Zahl der gleichzeitigen Abrufe (concurrency) wurde nach jedem Trippel verdoppelt, also nacheinander auf 1 - 2 - 4 - 8 - 16 - 32 - 64 - 128 - 256 - 512 gesetzt. Sofern eine Datenbank zum Einsatz kam, war der tablespace auf einer RAM-Disk abgelegt, auf einen dedizierten MySQL-Server wurde verzichtet((Die Erfahrung hat gezeigt, dass für diese einfache Art von Benchmarks ein lokaler Prozess die performanteste Lösung ist.)). Unnötige Dienste (cron, mail etc.) waren deaktiviert. Beide Server waren identisch installiert und basierten auf Ubuntu Karmic Koala (32 Bit((Eine rein pragmatische Entscheidung, da die Produktivsysteme ebenfalls mit 32 Bit Linux arbeiten.))). Die für den Test relevante Software((Die Konfiguration blieb, was die leistungsrelevanten Werte anging, bei der jeweiligen Voreinstellung.)) war: * Apache 2.2.12 (Paketversion 2.2.12-1ubuntu2.1) * lighttpd 1.4.22 (Paketversion 1.4.22-1ubuntu4) * libapache2-mod-php5 5.1.6 (Paketversion 5.2.10.dfsg.1-2ubuntu6.3) als php5 Interpreter unter Apache * php5-cgi 5.2.10 (Paketversion 5.2.10.dfsg.1-2ubuntu6.3) als php5 Interpreter unter lighttpd, eingebunden über die fastcgi Schnittstelle * php5-xcache 1.2.2 (Paketversion 1.2.2-5) * Mysql 5.1.37 (Paketversion 5.1.37-1ubuntu5) * Dokuwiki 2009-02-14b * Wordpress 2.8.6 * serendipity 1.4.1 ===== Statische Seiten ===== Die Leistungsfähigkeit bei statischen Seiten, wurde [[https://michaelwenzl.de/dw/it:lighttpd_apache_smf#satische_seiten|bereits in einem früheren Benchmark]] untersucht. Die qualitative Einschätzung, dass [[http://www.lighttpd.net/|lighttpd]] vor allem bei vergleichsweise kleinen Dateien performanter ist, gilt nach wie vor. Daher wurde dieser Test vor allem dazu verwendet um die Sättigung der Netzwerkschnittstelle bei beiden Systemen festzustellen, dazu wurde eine 60 kB große Datei verwendet. title = statische Seite size = 600x300 align = center bgcolor = #eeeeee graphColor = #eee bggradient = #555@80 grid = false titleColor = #efefef scaleColor = #efefef type = bar XAxisName = concurrency YAxisName = req/s labelSerie = 5 legendEntries = Apache 2.2 (P4), Apache 2.2 (Athlon X2), lighttpd 1.4 (P4), lighttpd 1.4 (Athlon X2) 126.2,151.8,163.2,158.7,163.6,163.7,163.0,162.2,161.1,0 131.9,144.5,148.3,154.7,157.1,157.6,159.5,160.1,159.5,159.6 119.6,152.2,155.0,160.2,161.5,163.0,162.9,162.5,160.8,158.3 134.2,143.8,150.2,154.7,156.2,158.9,159.8,161.0,157.5,155.7 1,2,4,8,16,32,64,128,256,512 | ^ c=1 ^ c=2 ^ c=4 ^ c=8 ^ c=16 ^ c=32 ^ c=64 ^ c=128 ^ c=256 ^ c=512 ^ ^ Apache 2.2 (P4) | 126,2| 151,8| 163,2| 158,7| 163,6| 163,7| 163,0| 162,2| 161,1| 0| ^ Apache 2.2 (Athlon X2) | 131,9| 144,5| 148,3| 154,7| 157,1| 157,6| 159,5| 160,1| 159,5| 159,6| ^ lighttpd 1.4 (P4) | 119,6| 152,2| 155,0| 160,2| 161,5| 163,0| 162,9| 162,5| 160,8| 158,3| ^ lighttpd 1.4 (Athlon X2) | 134,2| 143,8| 150,2| 154,7| 156,2| 158,9| 159,8| 161,0| 157,5| 155,7| ==== Fazit ==== In diesem konkreten Test können keine gravierenden Unterschiede festgestellt werden. Lediglich auf dem kleineren Server (Intel Pentium 4) bricht [[http://httpd.apache.org/|Apache]] bei 512 gleichzeitigen Zugriffen ab, auf dem Dual-Core-System arbeitet er auch bei diesem Wert klaglos. Zu beobachten ist, dass beide System während des Tests kaum ausgelastet sind, die Saturierung erfolgt also ohne die CPU zu überlasten. Daraus folgt im Umkehrschluss, dass bereits der Server mit Pentium-4-CPU ausreichend Rechenleistung hat, um die 100 MBit/s des Netzwerks zu sättigen.\\ Bei genauer Betrachtung der Werte, fällt auf, dass der leistungsfähigere Server geringfügig schlechtere Transferraten liefert. Das liegt im konkreten Fall an der Netzwerkkarte, die auch bei anderen Protokollen langsamer ist. Dies fällt im Test allerdings nicht weiter ins Gewicht, da bei allen weiteren Aufgaben die Rechenleistung der entscheidende Faktor steht. ===== dokuwiki ===== [[http://www.dokuwiki.org/|Dokuwiki]] ist eine Software um Wikis zu betreiben. Die Daten werden als Textdateien im Dateisystem abgelegt. ==== Einfache Seite ==== Als Beispiel für eine einfache Seite dient die [[http://smuepedia.de/geschichte:zeittafel|Zeittafel der SmüPedia]], die lediglich aus einer Tabelle besteht. Sie enthält nur HTML Code und hat keine externen Referenzen. Es werden ca. 15 KB HTML-Code übertragen. === Intel Pentium 4 1,6 GHz === title = einfache dokuwiki Seite (P4) size = 600x300 align = center bgcolor = #eeeeee graphColor = #eee bggradient = #555@80 grid = false titleColor = #efefef scaleColor = #efefef type = bar XAxisName = concurrency YAxisName = req/s labelSerie = 5 legendEntries = Apache 2.2, lighttpd 1.4, Apache 2.2 mit XCache, lighttpd 1.4 mit XCache 4.0,4.1,4.0,4.0,3.8,3.8,0.4,0,0,0 4.2,4.1,3.9,3.9,3.8,3.8,3.8,3.8,3.8,3.8 16.2,16.9,16.8,16.7,16.5,16.2,15.5,6.5,5.0,0 16.5,16.8,16.1,15.6,15.6,16.4,16.4,15.0,14.2,13.2 1,2,4,8,16,32,64,128,256,512 | ^ c=1 ^ c=2 ^ c=4 ^ c=8 ^ c=16 ^ c=32 ^ c=64 ^ c=128 ^ c=256 ^ c=512 ^ ^ Apache 2.2 | 4,0| 4,1| 4,0| 4,0| 3,8| 3,8| 0,4| 0| 0| 0| ^ lighttpd 1.4 | 4,2| 4,1| 3,9| 3,9| 3,8| 3,8| 3,8| 3,8| 3,8| 3,8| ^ Apache 2.2 mit XCache | 16,2| 16,9| 16,8| 16,7| 16,5| 16,2| 15,5| 6,5| 5,0| 0| ^ lighttpd 1.4 mit XCache | 16,5| 16,8| 16,1| 15,6| 15,6| 16,4| 16,4| 15,0| 14,2| 13,2| === AMD Athlon 64 X2 1,8 GHz === title = einfache dokuwiki Seite (Athlon X2) size = 600x300 align = center bgcolor = #eeeeee graphColor = #eee bggradient = #555@80 grid = false titleColor = #efefef scaleColor = #efefef type = bar XAxisName = concurrency YAxisName = req/s labelSerie = 5 legendEntries = Apache 2.2, lighttpd 1.4, Apache 2.2 mit XCache, lighttpd 1.4 mit XCache 8.4,14.6,15.7,16.5,16.4,16.1,15.8,14.9,14.8,0 8.0,14.2,16.0,16.1,16.9,16.0,15.8,15.2,15.4,15.3 39.5,56.4,60.6,70.6,70.4,69.4,68.7,66.5,67.2,0 36.0,51.3,62.8,68.1,69.7,67.9,70.3,70.5,68.8,68.3 1,2,4,8,16,32,64,128,256,512 | ^ c=1 ^ c=2 ^ c=4 ^ c=8 ^ c=16 ^ c=32 ^ c=64 ^ c=128 ^ c=256 ^ c=512 ^ ^ Apache 2.2 | 8,4| 14,6| 15,7| 16,5| 16,4| 16,1| 15,8| 14,9| 14,8| 0| ^ lighttpd 1.4 | 8,0| 14,2| 16,0| 16,1| 16,9| 16,0| 15,8| 15,2| 15,4| 15,3| ^ Apache 2.2 mit XCache | 39,5| 56,4| 60,6| 70,6| 70,4| 69,4| 68,7| 66,5| 67,2| 0| ^ lighttpd 1.4 mit XCache | 36,0| 51,3| 62,8| 68,1| 69,7| 67,9| 70,3| 70,5| 68,8| 68,3| ==== Komplexe Seite ==== Als Beispiel für eine komplexe Seite wird die [[http://smuepedia.de/|Startseite der SmüPedia]] verwendet. Im Gegensatz zur o.g. einfachen Seite, wird zu ihrer Erzeugung mehr PHP Code durchlaufen, da Referenzen zu internen Elemente, wie etwa dem [[http://smuepedia.de/blog|Blog]] und einer [[http://smuepedia.de/bilder:keltenschanze_schwabegg|Galerie]] bestehen. Externe Elemente gibt es auch hier nicht, die übertragene Dateigröße beträgt ca. 48 KB. === Intel Pentium 4 1,6 GHz === title = komplexe dokuwiki Seite (P4) size = 600x300 align = center bgcolor = #eeeeee graphColor = #eee bggradient = #555@80 grid = false titleColor = #efefef scaleColor = #efefef type = bar XAxisName = concurrency YAxisName = req/s labelSerie = 5 legendEntries = Apache 2.2, lighttpd 1.4, Apache 2.2 mit XCache, lighttpd 1.4 mit XCache 1.6,1.6,1.6,1.5,1.4,0.5,0,0,0,0 1.6,1.6,1.5,1.5,1.3,1.3,1.3,1.4,1.3,1.3 2.8,2.8,2.7,2.7,2.6,2.4,2.2,0,0,0 2.8,2.7,2.6,2.7,2.6,2.5,2.6,2.6,2.6,2.6 1,2,4,8,16,32,64,128,256,512 | ^ c=1 ^ c=2 ^ c=4 ^ c=8 ^ c=16 ^ c=32 ^ c=64 ^ c=128 ^ c=256 ^ c=512 ^ ^ Apache 2.2 | 1,6| 1,6| 1,6| 1,5| 1,4| 0,5| 0,0| 0,0| 0,0| 0,0| ^ lighttpd 1.4 | 1,6| 1,6| 1,5| 1,5| 1,3| 1,3| 1,3| 1,4| 1,3| 1,3| ^ Apache 2.2 mit XCache | 2,8| 2,8| 2,7| 2,7| 2,6| 2,4| 2,2| 0,1| 0,0| 0,0| ^ lighttpd 1.4 mit XCache | 2,8| 2,7| 2,6| 2,7| 2,6| 2,5| 2,6| 2,6| 2,6| 2,6| === AMD Athlon 64 X2 1,8 GHz === title = komplexe dokuwiki Seite (Athlon X2) size = 600x300 align = center bgcolor = #eeeeee graphColor = #eee bggradient = #555@80 grid = false titleColor = #efefef scaleColor = #efefef type = bar XAxisName = concurrency YAxisName = req/s labelSerie = 5 legendEntries = Apache 2.2, lighttpd 1.4, Apache 2.2 mit XCache, lighttpd 1.4 mit XCache 3.3,5.9,6.4,6.5,6.3,6.2,5.8,5.1,5.4,0.0 3.3,5.8,6.4,6.3,6.2,6.2,6.0,5.5,5.3,5.3 6.0,10.1,11.2,11.4,11.4,11.2,10.9,10.2,10.0,0.0 5.5,9.6,10.9,11.1,11.0,10.9,10.6,10.3,10.3,10.3 1,2,4,8,16,32,64,128,256,512 | ^ c=1 ^ c=2 ^ c=4 ^ c=8 ^ c=16 ^ c=32 ^ c=64 ^ c=128 ^ c=256 ^ c=512 ^ ^ Apache 2.2 | 3,3| 5,9| 6,4| 6,5| 6,3| 6,2| 5,8| 5,1| 5,4| 0,0| ^ lighttpd 1.4 | 3,3| 5,8| 6,4| 6,3| 6,2| 6,2| 6,0| 5,5| 5,3| 5,3| ^ Apache 2.2 mit XCache | 6,0| 10,1| 11,2| 11,4| 11,4| 11,2| 10,9| 10,2| 10,0| 0,0| ^ lighttpd 1.4 mit XCache | 5,5| 9,6| 10,9| 11,1| 11,0| 10,9| 10,6| 10,3| 10,3| 10,3| ==== Fazit ==== Die Zahl der Anfragen, die von den Webservern beantwortet werden können, fällt hier drastisch niedriger aus, als beim reinen Dateitransfer. Hinsichtlich der Entscheidung [[http://httpd.apache.org/|Apache]] vs. [[http://www.lighttpd.net/|lighttpd]] ist die Situation aber ähnlich. Grundsätzlich schenken sich die beiden Kontrahenten nichts. Der wesentlich Unterschied ergibt sich beim Verhalten unter Last. Ohne Unterstützung durch [[http://xcache.lighttpd.net/|XCache]] macht [[http://httpd.apache.org/|Apache]] früher schlapp als [[http://www.lighttpd.net/|lighttpd]], mit dem Intel Pentium 4 Server bricht die Leistung bereits bei 32 bzw. 64 simultanten Zugriffen ein. Welche Rechnerarchituktur die bessere ist, steht auch zweifelsfrei fest. Der Server mit AMD Athlon 64 X2 hat in beiden Szenarios die Nase vorn. Allerdings fällt die Steigerung nicht proportional aus. Bei einfacher Last, also nur einem simultanten Zugriff, können die Abfragen gerade verdoppelt werden, sobald mehrere Anfragen parallel verabeitet werden müssen, ist eine Steigerung von 250% bis 340% zu beobachten, das gilt sowohl für [[http://httpd.apache.org/|Apache]], als auch für [[http://www.lighttpd.net/|lighttpd]]. Beim [[http://httpd.apache.org/|Apache]] ergibt sich ferner eine höhere Stabilität, so können mit Dual-Core-System dann 256 statt nur 32 bzw. 64 simultane Anfragen verarbeitet werden. Mit [[wp>List_of_PHP_accelerators#XCache|XCache als PHP Bytecode Cache]] kann die Leistung erhöht werden und im Falle von [[http://httpd.apache.org/|Apache]] auch die Stabilität. Allerdings kommt der [[http://httpd.apache.org/|Apache]] damit auch nur auf max. 256 gleichzeitige Abfragen, 512 schafft mit Dokuwiki nur [[http://www.lighttpd.net/|lighttpd]]. Die Steigerung durch [[http://xcache.lighttpd.net/|XCache]] beträgt bei der einfachen Seite 250% - 350% und bei der komplexen Seite 70% - 100%. ===== Wordpress ===== ==== Startseite ==== Als erster Testfall dient die [[http://bloggertreffen.org/|Startseite von bloggertreffen.org]]. Sie enthält die zehn aktuellsten Artikel, es werden ca. 52 kB HTML-Code übertragen === Intel Pentium 4 1,6 GHz === title = Wordpress Startseite (P4) size = 600x300 align = center bgcolor = #eeeeee graphColor = #eee bggradient = #555@80 grid = false titleColor = #efefef scaleColor = #efefef type = bar XAxisName = concurrency YAxisName = req/s labelSerie = 5 legendEntries = Apache 2.2, lighttpd 1.4, Apache 2.2 mit XCache, lighttpd 1.4 mit XCache 0.6,0.6,0.5,0.5,0.1,0.0,0.0,0.0,0.0,0.0 0.5,0.5,0.5,0.5,0.3,0.2,0.2,0.2,0.1,0.0 0.7,0.8,0.7,0.7,0.6,0.5,0.0,0.0,0.0,0.0 0.7,0.8,0.7,0.7,0.5,0.5,0.5,0.5,0.5,0.5 1,2,4,8,16,32,64,128,256,512 | ^ c=1 ^ c=2 ^ c=4 ^ c=8 ^ c=16 ^ c=32 ^ c=64 ^ c=128 ^ c=256 ^ c=512 ^ ^ Apache 2.2 | 0,6| 0,6| 0,5| 0,5| 0,1| 0,0| 0,0| 0,0| 0,0| 0,0| ^ lighttpd 1.4 | 0,5| 0,5| 0,5| 0,5| 0,3| 0,2| 0,2| 0,2| 0,1| 0,0| ^ Apache 2.2 mit XCache | 0,7| 0,8| 0,7| 0,7| 0,6| 0,5| 0,0| 0,0| 0,0| 0,0| ^ lighttpd 1.4 mit XCache | 0,7| 0,8| 0,7| 0,7| 0,5| 0,5| 0,5| 0,5| 0,5| 0,5| === AMD Athlon 64 X2 1,8 GHz === title = Wordpress Startseite (Athlon X2) size = 600x300 align = center bgcolor = #eeeeee graphColor = #eee bggradient = #555@80 grid = false titleColor = #efefef scaleColor = #efefef type = bar XAxisName = concurrency YAxisName = req/s labelSerie = 5 legendEntries = Apache 2.2, lighttpd 1.4, Apache 2.2 mit XCache, lighttpd 1.4 mit XCache 1.1,2.3,2.3,2.3,2.2,2.0,1.5,0.0,0.0,0.0 1.1,2.2,2.2,2.2,2.1,1.9,1.1,0.3,0.2,0.0 1.5,2.9,3.0,3.0,2.9,2.8,2.4,2.3,2.5,0.0 1.5,2.9,3.0,2.9,2.8,2.6,2.1,4.8,1.7,2.5 1,2,4,8,16,32,64,128,256,512 | ^ c=1 ^ c=2 ^ c=4 ^ c=8 ^ c=16 ^ c=32 ^ c=64 ^ c=128 ^ c=256 ^ c=512 ^ ^ Apache 2.2 | 1,1| 2,3| 2,3| 2,3| 2,2| 2,0| 1,5| 0,0| 0,0| 0,0| ^ lighttpd 1.4 | 1,1| 2,2| 2,2| 2,2| 2,1| 1,9| 1,1| 0,3| 0,2| 0,0| ^ Apache 2.2 mit XCache | 1,5| 2,9| 3,0| 3,0| 2,9| 2,8| 2,4| 2,3| 2,5| 0,0| ^ lighttpd 1.4 mit XCache | 1,5| 2,9| 3,0| 2,9| 2,8| 2,6| 2,1| 4,8| 1,7| 2,5| ==== Artikel ==== Im zweiten Test wird ein [[http://bloggertreffen.org/biofach-2009-bloggertreffen/|Artikel von bloggertreffen.org]] abgerufen, dabei werden ca. 33 kB HTML-Code übertragen === Intel Pentium 4 1,6 GHz === title = Wordpress Artikel (P4) size = 600x300 align = center bgcolor = #eeeeee graphColor = #eee bggradient = #555@80 grid = false titleColor = #efefef scaleColor = #efefef type = bar XAxisName = concurrency YAxisName = req/s labelSerie = 5 legendEntries = Apache 2.2, lighttpd 1.4, Apache 2.2 mit XCache, lighttpd 1.4 mit XCache 0.6,0.6,0.6,0.5,0.0,0.0,0.0,0.0,0.0,0.0 0.6,0.6,0.6,0.4,0.0,0.0,0.0,0.0,0.0,0.0 0.9,0.9,0.9,0.8,0.8,0.4,0.0,0.0,0.0,0.0 0.8,0.8,0.8,0.8,0.7,0.7,0.8,0.7,0.7,0.0 1,2,4,8,16,32,64,128,256,512 | ^ c=1 ^ c=2 ^ c=4 ^ c=8 ^ c=16 ^ c=32 ^ c=64 ^ c=128 ^ c=256 ^ c=512 ^ ^ Apache 2.2 | 0,6| 0,6| 0,6| 0,5| 0,0| 0,0| 0,0| 0,0| 0,0| 0,0| ^ lighttpd 1.4 | 0,6| 0,6| 0,6| 0,4| 0,0| 0,0| 0,0| 0,0| 0,0| 0,0| ^ Apache 2.2 mit XCache | 0,9| 0,9| 0,9| 0,8| 0,8| 0,4| 0,0| 0,0| 0,0| 0,0| ^ lighttpd 1.4 mit XCache | 0,8| 0,8| 0,8| 0,8| 0,7| 0,7| 0,8| 0,7| 0,7| 0,0| === AMD Athlon 64 X2 1,8 GHz === title = Wordpress Artikel (Athlon X2) size = 600x300 align = center bgcolor = #eeeeee graphColor = #eee bggradient = #555@80 grid = false titleColor = #efefef scaleColor = #efefef type = bar XAxisName = concurrency YAxisName = req/s labelSerie = 5 legendEntries = Apache 2.2, lighttpd 1.4, Apache 2.2 mit XCache, lighttpd 1.4 mit XCache 1.2,2.4,2.6,2.5,2.4,2.3,2.2,0.0,0.0,0.0 1.2,2.4,2.5,2.4,2.2,1.6,1.5,0.4,0.2,0.1 1.8,3.2,3.5,3.5,3.4,3.2,2.7,2.4,2.3,0.0 1.7,3.4,3.4,3.4,3.3,3.1,2.7,6.2,2.8,3.6 1,2,4,8,16,32,64,128,256,512 | ^ c=1 ^ c=2 ^ c=4 ^ c=8 ^ c=16 ^ c=32 ^ c=64 ^ c=128 ^ c=256 ^ c=512 ^ ^ Apache 2.2 | 1,2| 2,4| 2,6| 2,5| 2,4| 2,3| 2,2| 0,0| 0,0| 0,0| ^ lighttpd 1.4 | 1,2| 2,4| 2,5| 2,4| 2,2| 1,6| 1,5| 0,4| 0,2| 0,1| ^ Apache 2.2 mit XCache | 1,8| 3,2| 3,5| 3,5| 3,4| 3,2| 2,7| 2,4| 2,3| 0,0| ^ lighttpd 1.4 mit XCache | 1,7| 3,4| 3,4| 3,4| 3,3| 3,1| 2,7| 6,2| 2,8| 3,6| ==== Fazit ==== Ähnlich wie beim [[:it:lighttpd_apache#dokuwiki|Dokuwiki-Benchmark]] geben sich [[http://httpd.apache.org/|Apache]] und [[http://www.lighttpd.net/|lighttpd]] in der Geschwindigkeit wenig. [[http://httpd.apache.org/|Apache]] bricht auch hier bei vielen gleichzeitigen Verbindungen früher ein als [[http://www.lighttpd.net/|lighttpd]]. Mit [[wp>List_of_PHP_accelerators#XCache|XCache als PHP Bytecode Cache]] kann die Stabilität und Leistung erhöht werden. Die Leistungsteigerung beträgt zwischen 30% und 90%. Auffallend ist der schlechte Performance auf dem Pentium 4 System. Für den produktiven Einsatz ist eine so niedrige Rechenleistung und Speicherausstattung, nur bei Blogs geringer Prominenz sinnvoll einsetzbar. [[http://www.lighttpd.net/|lighttpd]] spielt aber hier auf niedrigem Niveau seine Stärken aus, im Zusammenspiel mit XCache sind immerhin 256 parallele Zugriffe machbar, [[http://httpd.apache.org/|Apache]] schafft gerade 32. ===== Serendipity ===== Um die Performance von [[http://www.lighttpd.net/|lighttpd]] und [[http://httpd.apache.org/|Apache]] mit dem Blogsystems [[http://www.s9y.org/|Serendipity]] zu prüfen, dient das Blog [[http://www.farmblogger.de/|Farmblogger]]. ==== Startseite ==== Im ersten Testfall wird die [[http://www.farmblogger.de/|Farmblogger Startseite]] abgerufen. Sie enthält die zehn aktuellsten Artikel, es werden ca. 97 kB HTML-Code übertragen === Intel Pentium 4 1,6 GHz === title = S9Y Startseite (P4) size = 600x300 align = center bgcolor = #eeeeee graphColor = #eee bggradient = #555@80 grid = false titleColor = #efefef scaleColor = #efefef type = bar XAxisName = concurrency YAxisName = req/s labelSerie = 5 legendEntries = Apache 2.2, lighttpd 1.4, Apache 2.2 mit XCache, lighttpd 1.4 mit XCache 1.2,1.3,1.2,1.2,0.8,0.0,0.0,0.0,0.0,0.0 1.3,1.3,1.2,1.1,0.9,0.9,0.9,0.9,0.9,0.9 3.0,2.7,2.6,2.4,2.4,1.6,1.0,0.0,0.0,0.0 2.9,2.8,2.4,2.3,2.4,2.1,2.1,2.1,2.0,2.0 1,2,4,8,16,32,64,128,256,512 | ^ c=1 ^ c=2 ^ c=4 ^ c=8 ^ c=16 ^ c=32 ^ c=64 ^ c=128 ^ c=256 ^ c=512 ^ ^ Apache 2.2 | 1,2| 1,3| 1,2| 1,2| 0,8| 0,0| 0,0| 0,0| 0,0| 0,0| ^ lighttpd 1.4 | 1,3| 1,3| 1,2| 1,1| 0,9| 0,9| 0,9| 0,9| 0,9| 0,9| ^ Apache 2.2 mit XCache | 3,0| 2,7| 2,6| 2,4| 2,4| 1,6| 1,0| 0,0| 0,0| 0,0| ^ lighttpd 1.4 mit XCache | 2,9| 2,8| 2,4| 2,3| 2,4| 2,1| 2,1| 2,1| 2,0| 2,0| === AMD Athlon 64 X2 1,8 GHz === title = S9Y Startseite (Athlon X2) size = 600x300 align = center bgcolor = #eeeeee graphColor = #eee bggradient = #555@80 grid = false titleColor = #efefef scaleColor = #efefef type = bar XAxisName = concurrency YAxisName = req/s labelSerie = 5 legendEntries = Apache 2.2, lighttpd 1.4, Apache 2.2 mit XCache, lighttpd 1.4 mit XCache 3.0,5.5,6.0,5.9,5.4,5.4,4.8,3.9,2.8,0.0 2.3,4.9,5.1,4.9,4.9,4.6,4.5,3.6,3.0,4.6 5.8,10.9,12.0,11.8,11.3,10.1,9.6,9.0,8.8,0.0 5.8,11.2,11.6,11.3,11.0,9.6,8.4,9.6,10.7,6.2 1,2,4,8,16,32,64,128,256,512 | ^ c=1 ^ c=2 ^ c=4 ^ c=8 ^ c=16 ^ c=32 ^ c=64 ^ c=128 ^ c=256 ^ c=512 ^ ^ Apache 2.2 | 3,0| 5,5| 6,0| 5,9| 5,4| 5,4| 4,8| 3,9| 2,8| 0,0| ^ lighttpd 1.4 | 2,3| 4,9| 5,1| 4,9| 4,9| 4,6| 4,5| 3,6| 3,0| 4,6| ^ Apache 2.2 mit XCache | 5,8| 10,9| 12,0| 11,8| 11,3| 10,1| 9,6| 9,0| 8,8| 0,0| ^ lighttpd 1.4 mit XCache | 5,8| 11,2| 11,6| 11,3| 11,0| 9,6| 8,4| 9,6| 10,7| 6,2| ==== Artikel ==== Für den zweiten Testfall wird [[http://www.farmblogger.de/archives/1700-Quo-Vadis-Tierschutz-im-Pferdesport.html|ein einzelner Artikel der Farmblogger]] abgerufen, dabei werden ca. 43 kB HTML-Code übertragen. === Intel Pentium 4 1,6 GHz === title = S9Y Artikel (P4) size = 600x300 align = center bgcolor = #eeeeee graphColor = #eee bggradient = #555@80 grid = false titleColor = #efefef scaleColor = #efefef type = bar XAxisName = concurrency YAxisName = req/s labelSerie = 5 legendEntries = Apache 2.2, lighttpd 1.4, Apache 2.2 mit XCache, lighttpd 1.4 mit XCache 1.5,1.5,1.4,1.4,1.3,0.0,0.0,0.0,0.0,0.0 1.4,1.4,1.4,1.4,1.2,1.2,1.2,1.2,1.2,1.2 4.6,4.7,3.9,3.8,3.7,3.4,3.0,0.0,0.0,0.0 4.7,4.5,3.7,3.9,3.7,3.7,3.7,3.7,3.7,2.7 1,2,4,8,16,32,64,128,256,512 | ^ c=1 ^ c=2 ^ c=4 ^ c=8 ^ c=16 ^ c=32 ^ c=64 ^ c=128 ^ c=256 ^ c=512 ^ ^ Apache 2.2 | 1,5| 1,5| 1,4| 1,4| 1,3| 0,0| 0,0| 0,0| 0,0| 0,0| ^ lighttpd 1.4 | 1,4| 1,4| 1,4| 1,4| 1,2| 1,2| 1,2| 1,2| 1,2| 1,2| ^ Apache 2.2 mit XCache | 4,6| 4,7| 3,9| 3,8| 3,7| 3,4| 3,0| 0,0| 0,0| 0,0| ^ lighttpd 1.4 mit XCache | 4,7| 4,5| 3,7| 3,9| 3,7| 3,7| 3,7| 3,7| 3,7| 2,7| === AMD Athlon 64 X2 1,8 GHz === title = S9Y Artikel (Athlon X2) size = 600x300 align = center bgcolor = #eeeeee graphColor = #eee bggradient = #555@80 grid = false titleColor = #efefef scaleColor = #efefef type = bar XAxisName = concurrency YAxisName = req/s labelSerie = 5 legendEntries = Apache 2.2, lighttpd 1.4, Apache 2.2 mit XCache, lighttpd 1.4 mit XCache 2.9,5.7,6.2,6.0,5.8,5.6,5.1,4.8,3.4,0.0 3.0,5.7,6.2,6.0,5.8,5.7,5.1,5.2,5.4,5.6 10.2,18.4,20.8,20.5,18.3,17.4,15.7,14.3,14.7,0.0 10.2,19.0,20.7,20.3,17.8,16.5,15.3,15.0,23.1,16.0 1,2,4,8,16,32,64,128,256,512 | ^ c=1 ^ c=2 ^ c=4 ^ c=8 ^ c=16 ^ c=32 ^ c=64 ^ c=128 ^ c=256 ^ c=512 ^ ^ Apache 2.2 | 2,9| 5,7| 6,2| 6,0| 5,8| 5,6| 5,1| 4,8| 3,4| 0,0| ^ lighttpd 1.4 | 3,0| 5,7| 6,2| 6,0| 5,8| 5,7| 5,1| 5,2| 5,4| 5,6| ^ Apache 2.2 mit XCache | 10,2| 18,4| 20,8| 20,5| 18,3| 17,4| 15,7| 14,3| 14,7| 0,0| ^ lighttpd 1.4 mit XCache | 10,2| 19,0| 20,7| 20,3| 17,8| 16,5| 15,3| 15,0| 23,1| 16,0| ==== Fazit ==== Auch mit [[http://www.s9y.org/|Serendipity]] wiederholt sich der Eindruck der beiden vorangegangen Tests. Im unteren Lastbereich geben sich [[http://www.lighttpd.net/|lighttpd]] und [[http://httpd.apache.org/|Apache]] nicht viel. Bei vielen parallelen Zugriffen bricht der [[http://httpd.apache.org/|Apache]] weg, während [[http://www.lighttpd.net/|lighttpd]] nach wie vor Seiten ausliefert. Mit [[wp>List_of_PHP_accelerators#XCache|XCache als PHP Bytecode Cache]] kann die Leistung und beim [[http://httpd.apache.org/|Apache]] auch die Stabilität erhöht werden. Die Leistungssteigerung fällt deutlicher aus als beim [[:it:lighttpd_apache#wordpress|Wordpress Benchmark]]. Auf dem P4 liegt sie zwischen 100% und 200%, auf dem Athlon X2 sind 90% - 250% möglich. Im Vergleich mit dem [[:it:lighttpd_apache#wordpress|Wordpress Benchmark]] scheint [[http://www.s9y.org/|Serendipity]] performanter sein. Das deckt sich zwar grundsätzlich mit der praktischen Erfahrung, kann im konkreten Fall aber nicht bestätigt werden, da es sich um Installationen mit unterschiedlichen Inhalten und Funktionalitäten handelt. ===== Weitere Optimierungsmöglichkeiten ===== * 64 Bit Kernel * Mehr RAM * Tuning Kernelparameter * Tuning Apache * Tuning lighttpd * Tuning Mysql * Tuning PHP * Tuning XCache * Tuning CMS {{tag>linux ubuntu "karmic koala" debian "open source" lighttpd apache wordpress dokuwiki benchmark xcache serendipity s9y}} ~~LINKBACK~~