Tuesday, 18. September 2007Apache (eAccelerator) vs. lighttpd (XCache): PHP-Performance gemessenTrackbacks
Trackback für spezifische URI dieses Eintrags
Keine Trackbacks
Kommentare
Ansicht der Kommentare:
(Linear | Verschachtelt)
Seh ich das richtig: Apache ohne EA ist bei dir schneller als mit?!? Da stimmt doch was nicht... Wie ist er konfiguriert? Welche Version hast Du benutzt?
Es ist nicht langsamer, aber nur minimal (4 sek. im Gesamttest) schneller. Woran das liegt weiss ich leider auch nicht, bisher habe ich wie gesagt nur gute Erfahrungen mit dem eAccelerator gesammelt.
Folgende Versionen kamen zum Einsatz: - Apache2 2.2.4-3 - PHP 5.2.3-1+b1 (Apache mod_php) - eAccelerator v0.9.5.2 (aus Sourcen) Config des Apachen (mpm_prefork): StartServers 10 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 500 Config des eAccelerator (sollten fast die Defaults sein): [eaccelerator] eaccelerator.shm_size="32" eaccelerator.cache_dir="/var/cache/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9" Ne idee?
1. Warum hast Du MaxRequestsPerChild gesetzt (und vor allem so niedrig)? Der arme Indianer kommt ja mitm neustarten der Prozesse gar nimmer hinterher. Gut für das Benchmark wahrscheinlich nicht relevant.
2. Versuch mal compress auf 0 zu setzen. Hier is vielleicht noch etwas Overhead drin. Wenn der Cache nicth das Problem ist sollte es ja kein Thema sein. 3. Du benutzt eine ziemliche neue Version von PHP. Eventuell ist EA noch nicht ganz so gut drauf optimiert? Versuch doch mal nen SVN-Snapshot von EA. Wie siehts aus, wenn Du Xcache und Apache benutzt? Ausserdem wären mehr parallele Anfragen doch realitätsnäher, oder? Ich meine ein normaler Browser setzt ja schon mindestens 4 parallele ab. Ein etwas "optimierter" schmeisst auch schonmal 32 ab. Und das von einem Client. Jetzt gehen wir mal davon aus es wären 10 Leute gleichzeitig auf der Seite unterwegs. Mit dem ganzen AJAX-Graffl werden ja auch noch beim NIXTUN vom User Requests abgesetzt... Da könntest du -c2 schonmal auf -c50 oder so setzen. Ausserdem könntest Du spasseshalber, falls nicht schon geschehen, den Mysql-Cache aktivieren. Dann wird diese Abhängigkeit auch noch ausgeschlossen.
Hi,
1. war default drin 2. compress auf 0? Warum sollte man das denn tun? Macht doch im produktiven Umfeld auch kein Mensch, oder? Wenn ich mich recht erinner ist 9 tatsächlich auch die default-Stellung, oder? 3. Mh ja das könnte sein. Mal schauen, vlt. test ich es nochmal. XCache und Apache müsste man auch nochmal testen, stimmt. Aber wie gesagt, ich habe den EA durchaus auf mehreren Servern aktiv im Einsatz und bin total zufrieden damit. Deshalb kann ich mich das Testergebnis hier auch nicht so recht erklären... Du meinst den Query-Cache in MySql? Der ist an, mit 32MBytes.
PS: Mit MaxRequestsPerChild 0, also unendlich, verändert sich das Ergebnis nicht wirklich ...
Hallo,
ich hab das jetzt auch nochmal getestet mit meiner test kiste und hab ein gewin mit dem ea von ca. 50% hier mal meine config extension="eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="1" eaccelerator.compress="1" eaccelerator.compress_level="9" disc cache ist aus mem ist hier auf 16 mb aber werden eh nicht genutzt gestetet hab ich mit einer mediawiki installation auf der hauptseite sudo ab -n500 -c20 -dS "http://192.168.0.1/wiki/index.php?title=Hauptseite" "-c20 weil mit -c2 und ae hat er nur 13sek gebraucht und das fand ich ein wenig kurtz" ohne eaccelerator Time taken for tests: 46.963592 seconds mit Time taken for tests: 21.115922 seconds eaccelerator version ist svn #338 apache2-mpm-worker 2.2.6-1 (debian sid) php5-cgi 5.2.4-1 (debian sid) libapache2-mod-fcgid 1:2.1-3 (debian sid) also ich behaupte mal das da bei dir was total daneben ging
Ja, wie gesagt - keine Ahnung
In einem vorherigen Test (siehe http://admin-blog.com/archives/44-eAccelerator-in-Einsatz-und-Benchmark.html) hat der Accelerator ja auch jede Menge gebracht. Auf dem Server hier habe ich ihn auch drauf und hier bringt er auch was. Nur auf der nackten Testkiste irgendwie nich Naja, vlt. mach ich den Test nochmal, wenn ich mal Lust hab. Gruss, Rob
Ich habe eine Seite die Apache und xCache nutzt. Kann es echt jedem empfehlen, vor allem da dann Ressourcen für andere Sachen frei werden.
Natürlich muss man aber auch noch andere Schrauben am Server richtig drehen, sonst bringt der Performance zuwachs nicht wirklich was. Ich rede z.b. von tuning-primer für die optimierung von der mysql. nur so ein Hinweis
Hi, netter Test. Ich muss sagen, ich bin zwar auch von den Argumenten von Lighttpd beeindruckt, aber mich schrecken halt die gewissen kleinen unterschiede ab. z.B. Rewrite Rules etc. bei Lighttpd soll es um einiges aufwendiger sein. Ich z.b benutze bei jedem Projekt htaccess und glaube kaum das eine Umstellung so einfach ist.
Also bei meinem Serendipity-Blog erhöht sich die Performance etwa um Faktor 3, wenn ich eAccelerator einschalte, von 4,1 auf 12,0 request/s (unter Debian etch, mit PHP5 und PostgreSQL, auf einem älteren Pentium-4-2,6 Ghz).
Zu lighttpd: Eine Performance-Steigerung von 20% wird woanders berichtet. Aber das heisst doch klar, lighttpd lohnt sich nur, wenn man wirklich hohe Last hat und ein einzelner (zeitgemäßer, also 8-Core, 8 GB o.ä.) Server bereits ausgelastet ist. Hat man also zB bereits vier Server mit Load-balancing im Einsatz, kann man nun den Einsatz des fünften sparen (oder bei Flickr der nächsten 20 o.ä.); das lohnt dann ggf. auch die Anpassung der Konfiguration, Ersatz von .htaccess durch andere Techniken usw. Dieses Szenario trifft auf mich nicht zu, und bevor ich alles umkonfiguriere, würde ich erstmal für 300 E die billigste Quad-Core-CPU samt Motherboard in den Server bauen, der dann gleich Faktor 10 schneller wird, oder so. Und vorher vielleicht noch einen reserve proxy einsetzen, schnellere Software prüfen usw. |
SucheImpressumKommentare |