Hallo!
Also, ich schaffe mit zwei replizierenden Servern jetzt ca. 2000 bis 2500 Anfragen pro Sekunde (100 gleichzeitige Requests).
Was heißt "replizierend"? Was wird bei einem Request ausgeführt? Du musst natürlich aufpassen wenn Du mit so einem simplen tool wie ab benchmarkst, und dabei alle möglichen Caches verwendest. Das kann zu einem bösen Erwachen führen wenn die Requests auf einmal von ganz verschiedenen, echten Clients kommen. Wenn ich das richtig verstehe generierst Du immer eine Ausgabe für alle Clients, und lässt die dann X Sekunden cachen, ja?
Ich benutze jetzt den Apache, einen PEN-Loadbalancer, den Turck-Cache und Squid als Accelator.
kein lighttpd? Schade ;-) Das ist für mich die einfachste/beste Vatiante:
-> lighttpd
-> PHP-FastCGI
-> eAccelerator
-> Squid
gut, aber so viel wird sich da nicht tun. Bedenke allerdings dass der Entwickler des Turck-Cache vor 1,5 Jahren zu Zend gewechselt ist, und der Turck-Cache einige Bugs enthält, die bis heute nicht behoben wurden, weil sich niemand mehr drum kümmert. Da der Turck-Cache unter der GPL steht wird der Code inzwischen in einem neuen Projekt weitergeführt -> eAccelerator. Da sind die versammelt, die Turck weiterentwickeln. Hatte sich ca. ein Jahr nichts getan, dann kam vor ein paar Monaten eben eAccelerator mit allen möglichen Patches, die dann auch den Betrieb von PHP5 erlaubten. Allerdings sind bzgl. PHP5 noch ein paar kleinere Bugs vorhanden. Turck würde ich nicht mehr nehmen. Ich habe nach Turck (mit dem ich ein paar segfault-Probleme bekam) ne ganze Zeit mit PECL::APC gearbeitet (daran arbeiten einige PHP-Devs, so auch Rasmus), das läuft auch super-stabil udn schnell, allerdings nicht mit PHP5. Daher bin ich inzwichen auf eAccelerator umgestiegen. APC kannst Du schön einfach installieren:
pear install APC
das als superuser und Du bist fertig.
Das Ding hat jetzt richtig Dampf!
jo, sieht so aus ;-)
Verwendest Du Turck auch als Conent-Cache?
<?php
mmcache_cache_page($_SERVER['PHP_SELF'].'?GET='.serialize($_GET), 30);
echo time();
phpinfo();
?>
http://turck-mmcache.sourceforge.net/index_old.html#api
Ich habe mir zu dem Tool von M.Schilli nochmals Gedanken gemacht.
Ich denke, es ist nicht völlig falsch, nur ein anderer Ansatz.
Wenn ich es richtig verstehe, mißt das Benchmark vom Apache, auf wieviel Anfragen ein Server reagieren kann - unbesehen, ob das Ausliefern 1ms oder 10 Minuten dauert.
pounder.pl wartet aber auf die Auslieferung (ist ja einfach nur ein Robot).
das mach ab AFAIK auch:
Time per request: 56.10 [ms] (mean)
Time per request: 1.87 [ms] (mean, across all concurrent requests)
Connnection Times (ms)
min avg max
Connect: 0 2 4
Processing: 30 47 106
Total: 30 49 108
Aber ab startet AFAIK viele Threads die parallel arbeiten. Vielleicht liegt es daran.
Grüße
Andreas
SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/