[PYTHON] Führen Sie den uwsgi-Server im uwsgi-gevent-Modus aus

http://uwsgi-docs.readthedocs.io/en/latest/Gevent.html?highlight=gevent Bewegen wir uwsgi während des Betrachtens in den Gevent-Modus.

Umgebung

nginx: 1.10.1 python: 2.7.10 uwsgi: 2.0.13.1 Da nginx-uwsgi lokal erstellt wurde, kommuniziert es mit Unix-Domain-Sockets.

uwsgi Einstellungen

Gevent-Parameter hinzugefügt

uwsgi.ini


[uwsgi]
...
gevent = 40

Der Wert hier ist die Anzahl der Arbeiter in gevent, aber ich kenne den optimalen Wert nicht. (Ich möchte, dass es mir jemand sagt)

MySQL-Modul

Es scheint, dass gevent den MySQL-Connector nicht unterstützt, wenn es sich um MySQL Python handelt. Verwenden Sie PyMySQL. Wenn Sie Django verwenden und PyMySQL so verwendet wird, wie es ist, wird es nicht mit der Backend-Implementierung in Verbindung gebracht.

import pymysql
pymysql.install_as_MySQLdb()

Du musst tun.

Affenpflaster

Zu Beginn des uwsgi-Bootmoduls

import gevent.monkey
gevent.monkey.patch_all()

Wenden Sie das Affenpflaster mit an. (Vor anderen Importen auszuführen) Es scheint, dass gevent-monkey-patch = true auch in uwsgi.ini verwendet werden kann. In meiner Umgebung ist bei MySQL ein Fehler aufgetreten, der nicht funktioniert hat. Vielleicht hängt es mit der internen Importreihenfolge zusammen.

Lauf

Führen Sie uwsgi wie gewohnt aus.

*** running gevent loop engine [addr:0x10e228440] ***

Wenn eine solche Meldung angezeigt wird, ist der Start im Gevent-Modus erfolgreich. Versuchen Sie danach eine HTTP-Anfrage. Wenn kein Fehler auftritt, ist dies in Ordnung.

Versuche zu beginnen

Es ist schwer, den Unterschied zwischen keinem Gevent und keinem Gevent zu erkennen (weil es lokal ist). Ich kenne den optimalen Wert des Parameters immer noch nicht, daher werde ich verschiedene Dinge ausprobieren und ihn überprüfen.

Recommended Posts

Führen Sie den uwsgi-Server im uwsgi-gevent-Modus aus
Verwenden wir Juman ++ im Servermodus
Führen Sie Aufgaben im Hintergrund auf dem Server aus, an den Sie gesendet haben
Führen Sie in Python geschriebenes CGI auf Sakuras Mietserver aus
Bis Sie Server Django mit Visual Studio Code ausführen
DNS-Server in Python ....
Einstellung zum Ausführen der Anwendung im Unterverzeichnis mit nginx + uwsgi
Führen Sie den interaktiven Modus matplotlib asynchron aus
Führen Sie automatisierte Jobs in Python aus
Führen Sie Shell-Befehle in Python aus
Führen Sie Python unittest parallel aus
Führen Sie einen Hintergrundjob mit Stoff aus
Führen Sie Amazon Linux 2 in VirtualBox aus
Verwenden des Python-Modus in der Verarbeitung