Seite 1 von 1

Django Hosting frisst enorm viel Speicher! - Normal?

Verfasst: Donnerstag 30. April 2009, 07:23
von ferix
Hallo,

ich habe einen virtuellen Root-Server mit 607.56 MB Arbeitsspeicher und hoste darauf mittlerweile 5-6 Django-Seiten.

Die Einrichtung der einzelnen Seiten habe ich über FastCGI nach folgender Anleitung gemacht: http://www.icoost.com/programmiersprach ... nd-apache/

Nun habe ich aber das Problem, dass die Django-Seiten enorm viel Arbeitsspeicher fressen und das System sogar zu 100% auslasten. Ist das normal??? Oder habe ich ggf. etwas falsch gemacht?

Zum Test habe ich mal einen Serverneustart gemacht. Da war zunächst die Auslastung bei 45%. Mit jeder Website, die ich auf dem Server hoste und die ich nach und nach aufgerufen habe, kamen quasi 10% Auslastung hinzu.

Das stellt für mich momentan wirklich ein Problem dar, da ich nicht weiß ob es normal ist oder irgendwie reduziert werden kann.

Code: Alles auswählen

# Add a custom Python path.
sys.path.insert(0, "/var/django")
An dieser Stelle habe ich zum Beispiel jedes Mal den Ordner angegeben, in dem sich das jeweilige Projekt befindet. Die ganzen 5-6 Projekte befinden sich aber alle in separaten ordnern, weswegen auch 6 verschiedene Ordner insgesamgt eben bei jedme Projekt einer angegeben ist. Kann es damit zusammenhängen!?!? Ist es besser alle Django-Projekte in einem Ordner zu platzieren?

Ich würde mich über Hilfe sehr freuen!! Danke.

Verfasst: Donnerstag 30. April 2009, 19:30
von ferix
Bin jetzt auf meinem neuem Server auf WSGI umgestiegen mal sehen wie das geht. Aber in der Doku habe ich folgende Zeilen gefunden:

Code: Alles auswählen

WSGIDaemonProcess site-1 user=user-1 group=user-1 threads=25
WSGIProcessGroup site-1
Für was sind diese gut? Performancegewinn?

Aus: http://code.google.com/p/modwsgi/wiki/I ... WithDjango

Verfasst: Donnerstag 30. April 2009, 20:14
von sma
Ich kenne mich mit dem Deployment unter Linux leider nicht aus. Wenn ich's jedoch messe, braucht eine einfache Django-Anwendung bei mir etwa 10-15 MB RAM. Ich vermute, FCGI startet die Anwendung mehrfach, da können dann also 50-100 MB zusammenkommen - jedoch keine 600 MB. Solltest du sqlite benutzen, könnte ich mir vorstellen, dass jeder Prozess im Hauptspeicher einmal die Datenbank zwischenspeichert. Aber ist das bei dir so viel? Die Anzahl der Webseiten in einer Django-Anwendung spielt AFAIK eher keine Rolle, was die Speicherauslastung angeht.

Wenn du jedoch Hauptspeicher sparen willst, ist vielleicht lighttpd statt Apache httpd eine Alternative. Oder du probierst mal den WSGI-Webserver von CherryPy aus, der in Python geschrieben ist und keinen weiteren Server benötigt.

Stefan

Verfasst: Donnerstag 30. April 2009, 20:23
von ferix
Ich vermute, FCGI startet die Anwendung mehrfach, da können dann also 50-100 MB zusammenkommen
Ja für jede Website wird eine .fcgi File geladen.

Die Anzahl der Webseiten in einer Django-Anwendung spielt AFAIK eher keine Rolle, was die Speicherauslastung angeht.
Mit EINER Django-Anwendung meinst du die Installation auf dem Server??


Ich habe jetzt einen Server mit 4GB Arbeitsspeicher mal sehen wie lange der hält :) Wenn der auch Probs macht, ist irgendwas faul aber ich hoffe nicht.