2016-04-29 10 views
1

Ich schreibe eine Pyramiden-Anwendung, die viele große Datei-Uploads akzeptiert (als POST). Ähnlich wie How can I serve temporary files from Python Pyramid, habe ich ein Problem, wo die von cgi.FieldStorage erstellten temporären Dateien verwaist sind und GBs Speicherplatz verbrauchen. lsof zeigt an, dass mein wsgi-Prozess Dateien von /tmp gelöscht hat, aber die Dateien wurden nicht geschlossen. Neustart der Anwendung löscht die Waisen.Freigabe Speicherplatz von cgi.FieldStorage temporäre Dateien

Wie kann ich veranlassen, dass diese Dateien geschlossen werden, damit der Speicherplatz auf dem Betriebssystem zurückgegeben wird?

Antwort

0

Dieses Problem, auf das ich stieß, war nicht verwandt mit cgi.FieldStorage, Pyramide verwendet tatsächlich WebOb zum Serialisieren von Daten.

Die Ursache des hohen Speicherplatzbedarfs war pyramid_debugtoolbar. Der Debugger gibt in seiner Dokumentation an, dass er die Daten der vorherigen 100 Anforderungen verwaltet, was in meinem Fall viel Speicherplatz und Speicherplatz in Anspruch nahm. Durch das Entfernen des Includes für den Debugger von __init__.py und das Neustarten des Servers wurde das Problem behoben.

Verwandte Themen