mod_wsgi daemon-Modus, WSGIApplicationGroup und Python-interpreter Trennung

Ich habe Apache mit 2 virtuellen hosts, jeder mit einer Django-site angebracht mit mod_wsgi, daemon-Modus, wie diese:

<VirtualHost 123.123.123.123:80>
    WSGIDaemonProcess a.com user=x group=x processes=5 threads=1
    WSGIProcessGroup a.com
    WSGIApplicationGroup %{GLOBAL}
</VirtualHost>

<VirtualHost 123.123.123.123:80>
    WSGIDaemonProcess b.com user=x group=x processes=5 threads=1
    WSGIProcessGroup b.com
    WSGIApplicationGroup %{GLOBAL}
</VirtualHost>

Benutze ich WSGIApplicationGroup %{GLOBAL} weil ein bekanntes problem mit Xapian.

Nun, wenn ich verstehe, was passiert hinter den kulissen, mod_wsgi startet 5-daemon-Prozesse für jede meiner Websites. Ich kann sehen, dass dies im Apache-log:

[info] mod_wsgi (pid=8106): Attach interpreter ''.
[info] mod_wsgi (pid=8106): Adding '.../lib/python2.5/site-packages' to path.
[info] mod_wsgi (pid=8106): Enable monitor thread in process 'a.com'.
[info] mod_wsgi (pid=8106): Enable deadlock thread in process 'a.com'.

[info] mod_wsgi (pid=8107): Attach interpreter ''.
[info] mod_wsgi (pid=8107): Adding '.../lib/python2.5/site-packages' to path.
[info] mod_wsgi (pid=8107): Enable monitor thread in process 'a.com'.
[info] mod_wsgi (pid=8107): Enable deadlock thread in process 'a.com'.

...

Was ich nicht verstehe, ist, wenn diese "Attach interpreter ''" Linien zeigen, dass alle diese Prozesse teilen sich die gleichen Python-interpreter, oder wenn es einen interpreter pro Prozess. (BTW merke ich, dass der leer-interpreter-name " ist verursacht durch vorbeifahrende %{GLOBAL} zu WSGIApplicationGroup).

Ich habe versucht, die Kontrolle, ob vielleicht sys.path Einträge kumuliert in die nachfolgenden Prozesse, aber Sie nicht - was darauf hindeuten könnte, dass es eine separate Python-interpreter für jedes der 5-daemon-Prozesse... aber ich verstehe nicht ganz, alle diese Dinge, so Frage ich hier.

Schreibe einen Kommentar