Gunicorn: Speichererweiterung nach langem Servicelauf

Erstellt am 10. Okt. 2018  ·  3Kommentare  ·  Quelle: benoitc/gunicorn

HI :
Ich verwende Flask + Gunicorn, um einen API-Service zu erstellen. Da ich große Datenmengen zwischen Worker-Prozessoren teilen möchte, initiiere ich die Daten in der gunicorn.conf und verwende "gunicorn -c gunicorn.conf", um sie zu beenden. Alle Daten in gunicorn.conf würden nur einmal erstellt, sodass jeder Worker-Prozessor eine gemeinsame große Datenmenge teilt. Die Big Data in meinem Programm sind nur fertig, kein Schreibvorgang. Aber wenn ich meinen Dienst starte und eine lange Zeit laufe, erhöht sich der Speicher manchmal plötzlich um 1 GB, ich vermute, dass es in gunicorn einen Schreibvorgang geben kann, der den System-Copy-on-Write-Mechanismus verursacht. Und wie teile ich die Big Data zwischen den Worker-Prozessoren? Ich bin immer noch verwirrt von diesem Problem, erwarten Sie Ihre Antwort!!! Dankeschön!

Hilfreichster Kommentar

Dies hängt mit #1640 zusammen.

Die einzige andere Möglichkeit, dies zu handhaben, besteht darin, etwas zu tun, das die Python-Speicherverwaltung vermeidet. Vielleicht könnte das mmap-Modul helfen.

Alle 3 Kommentare

Dies hängt mit #1640 zusammen.

Die einzige andere Möglichkeit, dies zu handhaben, besteht darin, etwas zu tun, das die Python-Speicherverwaltung vermeidet. Vielleicht könnte das mmap-Modul helfen.

Dankeschön!!! Es ist sehr hilfreich!

HI:
Mit den Informationen, die Sie mir geben, aktualisiere ich mein Python von 2.7 auf 3.7 und verwende gc.freeze(), um einige Objekte zu vermeiden, die vom Garbage-Collector gesammelt werden. Dieses Mal scheint es nicht, dass "der Speicher plötzlich um 1 G ansteigt", aber es führt dazu, dass der Speicher langsam wächst, indem jeder Subprozessor-Speicher um 500 M+ erhöht wird, und dann aufhören zu wachsen. Ich denke, gc.freeze() ist Arbeit und macht ein anderes Gedächtnis-Erscheinungsbild. Ich hoffe, dass die Arbeit, die ich geleistet habe, für andere hilfreich ist. Danke!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen