phpbar.de logo

Mailinglisten-Archive

[php] Forks vs. Threads

[php] Forks vs. Threads

Sebastian Mendel lists at sebastianmendel.de
Mit Feb 27 11:11:17 CET 2008


Christoph Jeschke schrieb:
> * 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).

ah, so rum läuft das


> Apache-Threads verbrauchen weniger Ressourcen als Apache-Forks.

na das hatte ich auch schon mitbekommen das Threads schneller sind (beim 
starten) als Forks


> Zusätzlich spart man die Zeit, den PHP-Interpreter zu starten.

Wie? bei mod_php muss doch der PHP Interpreter auch nicht extra gestartet 
werden!?


> 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.

oh, aber wie kann man denn eine identische Konfiguration haben, wenn mod_php 
mit Prefork und FastCGI mit Worker läuft? ;-)


-- 
Sebastian

php::bar PHP Wiki   -   Listenarchive