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?
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.
>Tags und Links multithreading php apache multiprocessing