Behandelt php gleichzeitig Anfragen in Multithread- oder Multiprocess-Manier?

8

Ich frage mich, was hinter den Kulissen passiert, wenn simultane Anfragen von php (apache2) bedient werden.

Wenn es sich um ein Multithread-Modell handelt, wie werden die Threads verwaltet und was ist der Benchmark der konkurrierenden Anfragen?

    
Yogesh lele 29.12.2013, 16:12
quelle

2 Antworten

11

Die richtige Antwort ist: PHP kann beides, und auch Apache.

Mit dem prefork mpm wird ein Multi-Prozess-Modell verwendet, mehrere Instanzen von Apache werden beim Server-Start gegabelt, was wiederum den PHP-Interpreter initialisiert, einen Interpreter für jeden Prozess.

Bei der Worker mpm ist das Modell threadbasiert; es kann so wenig wie einen Prozess geben, für jeden Thread, den Apache initialisiert, initialisiert er erneut einen PHP-Interpreter.

In beiden Modi sind die Instanzen des Interpreters voneinander isoliert, im Prefork-Modus, weil das Forking funktioniert, und im Worker-Modus wegen TSRM, einem allgegenwärtigen Teil von PHP, von dem eigentlich niemand spricht.

>     
Joe Watkins 02.01.2014, 16:03
quelle
-3