http://uwsgi-docs.readthedocs.io/en/latest/Gevent.html?highlight=gevent Bewegen wir uwsgi während des Betrachtens in den Gevent-Modus.
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.
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)
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.
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.
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.
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