Beim testen auf dem Target-System stellte sich heraus, dass der Python prozess, der
über FastCGI gestartet wird, relativ schnell viel Speicher belegt.
Grob gesagt startet der Prozess bei ca. 4 MB und bereits bei einem Request, der weitere Requests
mit anstößt belegt der prozess schnell an die 10 MB. Das kann ich noch nachvollziehen.
Wenn ich jetzt den gleichen Request noch mal schicke liege ich bei ca 15 - 16 MB, obwohl sich
der Datenbestand zwischenzeitlich nicht geändert hat. Und mit jedem weiteren Request kommen etwa
5 - 6 MB Speicherbedarf hinzu.
Jetzt bin ich etwas ratlos, wo hier das speicherleck sein kann.
Ich hatte zwischenzeitlich schon versucht das ganze auf ein Minimum zu reduzieren und quasi nur eine
einfache Route zu definieren.
Wie etwas in diesem Beispiel:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
import bottle
import os
from bottle import route, run, view
@route('/')
@view('index')
def index():
return dict(hello='Hello World')
APP_ROOT = os.path.abspath(os.path.dirname(__file__))
bottle.TEMPLATE_PATH.append(os.path.join(APP_ROOT, 'templates'))
app = bottle.default_app()
if __name__ == '__main__':
from flup.server.fcgi import WSGIServer
WSGIServer(app).run()
Habt ihr eine Idee, was das verursachen kann. Liegt die Ursache möglicherweise auch im Flup Server ?
Habt ihr ähnliches schon mal beobachtet ?
Ich lasse den FastCGI Prozess über Lighttpd laufen, ich starte einen Prozess der dann auch längere Zeit laufen muss,
dementsprechend darf sowas nicht auftreten weil schnell schluss ist mit dem verfügbaren speicher.
Danke für jede Hilfe.