Python subprocess.Popen langsam unter uWSGI

Ich habe einen Entwicklungsserver mit Cherokee auf Fedora 14 eingerichtet, mit uWSGI, um mit meiner WSGI-Anwendung zu kommunizieren.

Wenn die Anwendung mit der ersten Anfrage getroffen wird, lasse ich einen Prozess wie folgt:

from subprocess import Popen Popen(['bash']) # bash is just an example; the problem happens with all programs 

Die erste Anforderung dauert 10-15 Sekunden, um abzuschließen (nachfolgende nehmen weniger als eine Sekunde). Ohne die Erstellung des Popen-Objekts dauert die erste Anforderung nur noch ca. 2-3 Sekunden. Wenn ich die gleiche Popen-Anforderung von einer Python-Shell ausführen, ist es sofort.

Was könnte dieses Verhalten verursachen? Habe ich etwas offensichtlich vermisst?

2 Solutions collect form web for “Python subprocess.Popen langsam unter uWSGI”

--close-on-exec

Andernfalls wird Ihr neuer Prozess die Steckdose erben

(Dies ist ein UNIX-Standard-Verhalten)

Wenn Sie es vorziehen, dies in Ihrem Python-Code zu behandeln, haben Sie die Möglichkeit, close_fds = True zu Popen () zu übergeben, dann werden alle Sockets nicht durch den gegabelten Prozess vererbt.

  • Wie man anmutige Herunterfahren in Python uwsgi Anwendung zu behandeln
  • UWSGI + Flasche + boto - Fadensicherheit
  • Kann ich das uwsgi-Protokoll verwenden, um http anzurufen?
  • Bad Django / uwsgi Leistung
  • Ungültige Transaktion bleibt über Anfragen bestehen
  • Django, uWSGI, gevent Schlaufe - Wie komme ich an die Arbeit - unfähig, app 0 zu laden (mountpoint = '')
  • Fehler bei der Installation von uwsgi auf ubuntu mit python 3.5 mit pip
  • Super grundlegende uwsgi Konfiguration
  • Nginx, uwsgi, django und upstream Zeitüberschreitung auf get / post
  • WSGI vs uWSGi mit Nginx
  • UWSGI sagt: "ImportError: Kein Modul namens wsgi"
  • Python ist die beste Programmiersprache der Welt.