phpbar.de logo

Mailinglisten-Archive

[php] Forks vs. Threads (was: Datein löschen )

[php] Forks vs. Threads (was: Datein löschen )

Christoph Jeschke christoph.jeschke at gmail.com
Mit Feb 27 10:04:16 CET 2008


* Sebastian Mendel:

> Martin Spuetz schrieb:

> > Das glaub ich nicht, mod_fcgid läuft doch als Apache Module, also so wie
> > mod_php. So wird dann auch bei FastCGI ein vorhandener Fork/Thread
> > genommen.
>
> ja eben, bis dahin ist es gleich, nur das FastCGI dann erst noch ein Thread
> fürs Script startet, wohingegen bei mod das PHP ja bereits im Apache Fork
> vorhanden ist, oder?

mod_fcgid oder mod_fastcgi laufen bereits in den Apache-Threads. FastCGI 
startet einen Pool von PHP-Prozessen, die persistent laufen. Wird nun ein 
PHP-Skript aufgerufen, leitet der bereits laufende Apache-Thread den Aufruf 
an den bereits laufenden PHP-Prozess weiter. Der Apache sorgt dafür, dass 
(bis zu einer definierbaren Höchstgrenze) immer genügend ruhende Threads 
verfügbar sind (Idle Threads).

Apache-Threads verbrauchen weniger Ressourcen als Apache-Forks. Zusätzlich 
spart man die Zeit, den PHP-Interpreter zu starten. 

Bei einem meiner Projekte konnte der Apache in der gleichen Zeit bei Einsatz 
von PHP als FastCGI 50% mehr Anfragen beantworten als beim Einsatz von PHP 
als Apache-Modul bei identischer Konfiguration.

-- 
/* And you'll never guess what the dog had */
/*   in its mouth... */
		-- Larry Wall in stab.c from the perl source code

php::bar PHP Wiki   -   Listenarchive