Ich weiss, dass viele Admins "Lighty" wegen seiner teilweise höheren Geschwindigkeit dem Apache vorziehen. Leider konnten das meine Tests in der
Vergangenheit nicht bestätigen. Aber man muss natürlich mehrere Szenarien probieren. Also gab ich "Lighty" erneut die Chance, sich gegen den Apache zu beweisen. Und zwar auf einem Server, der nur Suchvorschläge für die User ausgibt, ähnlich dem Prinzip auf
Google Suggest. Dabei sind in unserem Umfeld ~200 Requests/sec. auf ein PHP-Script zu beantworten, welches einige SQLite Datenbanken abfragt und die Ergebnisse ausgibt. Im Grunde ein sehr einfaches Script, aber die Masse der Anfragen macht hier die Last aus. Peaks von 300-400 Requests/sec. sind durchaus möglich.
Als Umgebung kam ein Debian GNU/Linux 4.0 AMD64 (Kernel 2.6.18-4-amd64) Server mit 2 Stück Dual-Core AMD Opteron(tm) Processor 2216 HE (sagt
cat /proc/cpuinfo | grep Opteron | head -n1) @ 2.4 GHz, 4 GByte RAM und 2x WD-Rapor SATA-Platten an einem 3Ware-8000 Controller zum Einsatz. Ich würde das als duchaus leistungsfähiges System bezeichnen.
Zuerst wurde Lighty via
apt-get in Version 1.4.13-4etch1 samt xCache (aus Sourcen) und PHP 5.2.0-8+etch5~pu1 (eingebunden via FastCGI) installiert, was aber nicht wirklich gut funktionierte. Denn nach einigen Minuten ging die CPU-Last auf 100% und der Server reagierte nicht mehr wie gewünscht auf Anfragen. Nach einigen Recherchen im Wiki auf
der HP von Lighty stieß ich dann auf den wahrscheinlichsten Grund, eine Lösung war leider nicht zu finden. Seltsamerweise trat das Problem in der anschließend von Hand kompilierten Version 1.4.18 nicht mehr auf, so dass der Server ca. 24 Stunden unter Last durchlaufen konnte. Die Load bewegte sich bei 3.x im Schnitt und alle Anfragen wurden schnell beantwortet. Allein die Prozessanzahl war mit mehreren hundert PHP-Prozessen etwas hoch (8 Lighty-Prozesse mit je 64 PHP-Prozessen waren konfiguriert), was aber kein Problem war. Änderungen an der Anzahl der PHP-Prozesse brachten keinerlei Veränderungen an der Last.
Nun konnte der Apache in Version 1.3.34-4.1 (Debian-Paket) samt PHP-Modul
libapache-mod-php5 in Version 5.2.0-8+etch5~pu1 zum Einsatz kommen. Statt xCache habe ich hier den eAccelerator v0.9.5.2 aus Sourcen zum Einsatz gebracht. Die Konfiguration gefiel mir sowieso deutlich besser also bei Lighty, schließlich kenne und benutze ich Apache seit vielen Jahren. Auch scheint mir das Finetuning hier etwas genauer möglich zu sein, zumindest was KeepAlive etc. angeht. Das KeepAliveTimeout wurde also auf 5 sec. gesetzt, MinSpareServers auf 15, MaxSpareServers auf 25 - die anderen Werte habe ich nicht verändert. Der Apache läuft nun seit rund 48h im Dauertest und hat eine mittlere Load von 2.x. Alle Anfragen werden ebenfalls problemlos beantwortet. Außerdem ist die Prozessanzahl deutlich geringer, da für PHP als Modul keine FastCGI-Prozesse "gespawnt" werden müssen wir bei Lighty.
In beiden Webservern wurde übrigens alle überflüssigen (also quasi alle ausser fcgi bzw. PHP) Module für den Test deaktiviert. Abschließend kann ich nur sagen, dass ich hier erneut keinen Vorteil für Lighty verbuchen kann und daher Apache auf diesem Server im Einsatz bleibt. Aber vielleicht finde ich ja noch das ideale Szenario für Lighty