[Technik] FastCGI (Benchmark)
Michael Hierweck
team at edv-serviceteam.net
Mon Nov 26 21:25:31 CET 2007
Hallo Christof,
Christof Donat wrote:
>
> Ich nenn dann mal ein paar Parameter, die du wahrscheinlich inzwischen auch
> kennst:
> 1. Mit FastCGI wird ein eigener Application Server pro Skript instanziiert.
> 2. Der Application Server kommuniziert mit dem Webserver per Unix Domain
> Sockets.
> 3. Der Umweg mit cgi-fcgi läuft so, dass Apache ein cgi Skript mit den Rechten
> des entsprechenden Users ausführt, das dann mit dem Application Server
> spricht. Damit kann das FastCGI Protokoll nicht vollständig ausgenützt
> werden.
Richtig, in der gestesteten Konfiguration wird nach wie vor ein
CGI-Prozess (das Wrapper-Skript bzw. der modifizierte stub) angestoßen.
> 4. Wenn wir ein Apache Modul für FastCGI verwenden, können wir den extra
> Prozess für das CGI Skript sparen.
Genau.
> 5. Wenn wir mod-php durch einen zentralen FastCGI Server ersetzen, können wir
> mit dem Umstieg auf Apache2 sogar ein anderes MPM verwenden und damit
> möglicherweise die Gesamtperformance noch weiter steigern. Das MPM "worker"
> soll recht gut sein, aber mod-php verlangt unbedingt nach "prefork".
> Voraussetzung dafür ist natürlich, dass uns sonst kein Modul davon abhält.
Das sagt mir jetzt so direkt nichts.
> 6. Wir könnten auch mehrere zentrale PHP-FastCGI Server für verschiedene PHP
> Versionen laufen lassen.
Wir wollen eigentlich keine Codeausführung von User-Code mehr unter
Prozesse anderer User, also kein User-PHP als httpd etc.
Ist das bei den zentralen Prozessen nicht so?
> Insgesamt ist eben die Gefahr, dass FastCGI Application Server sich im RAM
> breitmachen und der Server ins swappen gerät.
Ja, wobei ich mich frage, ob das Paging/Swapping eines selten benutzen
PHP-Prozesses aufwendiger ist, als der entsprechende klassische
PHP/CGI-Start - der ja auch IO-Operationen erfordert, wenn das Skript
nicht mehr im Cache lag. Also weniger IO für das Einlesen von Skripten,
dafür mehr IO für das Ein- und Auslagern von PHP-Prozessen. (Für andere
Sprachen analog.)
Die Frage ist: wie bekommen wir heraus, wie es sich in der Praxis
verhält? h51 ist da nicht repräsentativ, weil es genug RAM gibt und nur
einen Prozess. Also wurde natürlich nicht geswappt.
> In den meisten Fällen kann man FastCGI Server recht schmerzlos abschießen,
> wenn das Modul, bzw. cgi-fcgi so konfiguriert ist, dass es den Server im
> Zweifel einfach neu startet. Damit können die Hostmaster im Zweifel
> eingreifen (eventuell sogar mehr oder weniger automatisiert) ohne zu viel
> kaput zu machen.
So sollte es sein.
Viele Grüße
Michael
--
EDV-Serviceteam Werthmann & Hierweck GbR
Annika Werthmann, Michael Hierweck
Egerstraße 53, 44225 Dortmund
http://www.edv-serviceteam.net
More information about the Technik
mailing list