Thread mpm_worker_module / prefork + mod_perl (9 answers)
Opened by BiBo at 2011-02-14 02:33

torsten
 2011-02-14 10:10
#145631 #145631
User since
2010-08-16
45 Artikel
BenutzerIn
[Homepage] [default_avatar]
Guest BiBo
1.) Kann man mpm_worker_module und mpm_prefork_module gleichzeitig nutzen?

Nein. Es kann in einem laufenden Apache nur ein MPM geben. Du kannst allerdings beide Varianten installiert haben und in unterschiedlichen Apache Instanzen einsetzen.

Guest BiBo
2.)
A. Bei mpm_prefork_module ist mir das Klar.. Wenn ich 30 Server habe, habe ich 30 Prozesse und dann jedes Skript/Modul 30 mal rumliegen. bzw. Apache::DBI hat dann 30 Verbindungen offen.

B. Wie sieht es bei worker aus? Kann ich da 5 Prozesse à 6 Threads haben? Wie oft liegt dann jedes Skript/Modul im Speicher rum + Wieviele Verbindungen sind dann von Apache::DBI offen?

Ohne weitere Angaben startet modperl unter worker-MPM zu Anfang 3 Interpreter und erweitert diese Zahl bei Bedarf auf bis zu 5. Du kannst das konfigurieren über PerlInterpMax und PerlInterpMinSpare, siehe hier.

Falls Du versucht sein solltest, PerlInterpScope auf handler zu setzen, lass es.

Guest BiBo
3.) Was kann man mir empfehlen ?

prefork wenn irgend möglich

Gerade da Du Apache::DBI angesprochen hast. Dieses Modul wird oft so benutzt, dass die DB Verbindung in einem PerlChildInitHandler geöffnet werden. Nur gibt es diesen Handler einmal pro Prozess und nicht einmal pro Interpreter.

Ach ja, mit worker-MPM entspricht die Anzahl der DB Verbindungen der der Interpreter.

Für das nächste größere Release von modperl plane ich ehrlich gesagt, einen kompletten Umbau der Interpreter Verwaltung, siehe hier.

View full thread mpm_worker_module / prefork + mod_perl