Twitter Beginnen wir mit Qiita, um an die Reinkarnation zu erinnern.
~~ Wie der Titel schon sagt, habe ich beim Ausführen von Flask mit uWSGI @ HTTP bestätigt, dass es beim Posten einer Datei eine schöne Verzögerung von 1 Sekunde gibt, daher werde ich das Reproduktionsverfahren einführen. ~~
Dies ist eine Spezifikation von "curl", die eine Anfrage mit einem "Expect: 100-continue" -Header ausgibt und 1 Sekunde wartet, um zu fragen, ob Sie die Datei auf dem Server veröffentlichen möchten. Es scheint, dass. [^ 1]
$ curl -v -s -XPOST -F file=@LICENSE localhost:5002
* Rebuilt URL to: localhost:5002/
* Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 5002 (#0)
> POST / HTTP/1.1
> Host: localhost:5002
> User-Agent: curl/7.54.0
> Accept: */*
> Content-Length: 1271
> Expect: 100-continue
> Content-Type: multipart/form-data; boundary=------------------------ebc5516179fb0a6c
>
* Done waiting for 100-continue
< HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
< Content-Length: 20
<
* Connection #0 to host localhost left intact
Took: 0:00:01.011157
Es soll HTTP / 1.1-konform sein. [^ 2]
uWSGI unterstützt die Behandlung von Expect: 100-continue
, und es scheint, dass Sie der INI-Datei die folgende Zeile hinzufügen sollten. [^ 1]
http-manage-expect = 1
https://github.com/akeyhero/uwsgi-http-is-slow
Gemäß dem obigen Repository
Ich führe ein Experiment an.
einfach
$ flask run --host=0.0.0.0
Wenn mit begonnen.
uWSGI
http = 0.0.0.0:80
Beim Start mit Einstellungen, die enthalten.
uWSGI
socket = /socket/uwsgi.sock
Beim Start mit Einstellungen, die enthalten.
Flask==1.1.1
uwsgi==2.0.18
Die Antwortzeiten beim POSTEN einer Datei mit "curl" sind wie folgt. Solange dies bestätigt ist, kann die Datei beliebig sein, daher verwende ich die LIZENZ-Datei aus dem Repository.
Reaktionszeit | |
---|---|
1.Flasche allein | 0.067 |
2. Flask w/ uWSGI @ HTTP | 1.063 |
3. Flask w/ uWSGI @ uwsgi | 0.062 |
Sie können sehen, dass die Antwortzeit nur eine Sekunde langsamer ist, wenn Flask mit uWSGI @ HTTP gestartet wird.
Dieses Mal haben wir die Daten für einen Versuch veröffentlicht, aber die Antwortzeit ist fast gleich, egal wie oft Sie es versuchen.
~~ Flask allein verursacht dieses Phänomen nicht, daher habe ich ein entsprechendes Problem geworfen, da uWSGI wahrscheinlich die Ursache war. Ich bin mir jedoch nicht sicher, ob es an Flask liegt oder ob es durch eine einzelne Kombinationstechnik verursacht wird. ~~
~~ Wenn Sie Details haben, lassen Sie es uns bitte wissen. : bow: ~~
Ich wurde von einem Mitarbeiter von uWSGI unterrichtet. [^ 1] Ich habe viel gelernt.
Recommended Posts