2013-03-25 15 views
9

Die Tatsache bisher

Laut „mod_fcgi is NOT a replacement for mod_fastcgi“ und „Issues with mod_fcgid and multi-threaded FastCGI application“, mod_fcgid, wird auf einmal FastCGI-Server in der Lage sein, um mehrere Anforderungen zu verarbeiten, also nicht darauf ausgelegt zu erwarten FastCGI-Server sein multi- nicht darauf ausgelegt zu erwarten Gewinde.mod_fcgid: multi-threaded FastCGI jetzt oder in einer geplanten Zukunft?

Erstere sagt:

Sie sowohl die veröffentlichten „FastCGI“ Protokoll unterstützen, aber , wie sie ihre FastCGI-Server steuern, unterscheidet sich erheblich. mod_fcgid beseitigt schnell FastCGI-Server und startet neue.

Letzterer sagt:

es scheint mod_fcgid nicht der Tatsache bewusst ist, dass mein Server ist multi-threaded und ist in der Lage mehr als eine Anfrage zu bearbeiten.

Das sind nur zwei Zitate unter anderen, gibt es einige anderswo.

Die fortlaufende Ausgabe

Threading ist nicht nur über die CPU Speichern und Speicher den Aufwand für die Erstellung eines neuen Prozesses zu vermeiden (Erstellen eines Threads zu sein, ist bekannt, leichter als ein Verfahren zu schaffen) durch Hardware abgemildert, und das könnte oder Betriebssystemleistung; Dies ist auch eine logische Angelegenheit, die weniger leicht zu mildern ist: Threads gehören demselben Prozess an, das ist nicht nur Leistung, sondern auch Logik, z. Der Prozess kann nicht teilen, welche Threads sich teilen könnten, da der Prozess isoliert läuft (Modulo IPC, aber das ist nicht das Gleiche).

Zumindest aus diesem logischen Grund kann die Frage des multi-threaded FastCGI-Servers ausgelöst werden. Ein FastCGI-Server kann einen Kontext enthalten (der groß und teuer sein kann, um ihn zwischen Prozessen zu teilen), der für alle Anforderungshandler global ist, wenn er als Multi-Thread-Server ausgelegt ist. Wenn ein neuer Prozess für jede gleichzeitige Anforderung ausgehändigt wird, kann kein gemeinsamer Kontext mehr sichergestellt werden.

Die Frage

Sind die beiden obigen Zitate immer noch wahr (eine davon ist datiert 2011, der andere 2010)? Ich habe im Internet nach dem Thema gesucht, konnte aber nichts Relevantes finden. Wenn es immer noch wahr ist, wird es dann immer wahr sein oder gibt es einen erwarteten Plan für mod_fcgid, um Multi-Thread-FastCGI-Server zu kennen und zu akzeptieren, dass diese so ausgelegt sein können, dass sie mehrere gleichzeitige Anfragen behandeln?

+2

http://xkcd.com/979/ – Xunnamius

Antwort

3

Ich kann Ihre genauen Fragen über mod_fcgid nicht beantworten, aber Apache ist weitergegangen und die bevorzugte Methode jetzt in Apache 2.4 ist mod_proxy_fcgi, http://httpd.apache.org/docs/trunk/mod/mod_proxy_fcgi.html.

Es verarbeitet mehrere gleichzeitige Anforderungen. In der Regel können Sie Anfragen an den php-fpm-Handler übergeben.