2009-08-07 10 views
2

Ich habe ein Langsamkeitsproblem mit Django und ich kann die Quelle nicht finden .. Ich bin nicht sicher, was ich falsch mache, aber mindestens zweimal während der Arbeit an Projekten wurde Django wirklich langsam.Django extreme Langsamkeit

Anfragen nehmen Alter abzuschließen (~ 15 Sekunden) und Modell Validieren, wenn die Server-Entwicklung beginnen, ist auch sehr langsam (12+ Sekunden auf einem Quad-Core ..)

ich viel Lösung auf dem gefunden habe versucht, net für ein ähnliches Problem, aber sie scheinen nicht mit mir verwandt zu sein.

Das Problem scheint nicht von Djangos Entwicklungsserver zu kommen, da die Anfrage auf dem Produktionsserver mit Apache und mod_python auch sehr langsam ist.

Dann dachte ich, es könnte ein DNS-Problem sein, aber die Seite wird sofort geladen, wenn sie mit Apache2 geliefert wird.

Ich habe versucht, den Entwicklungsserver strace, aber ich habe nichts interessantes gefunden.

Selbst das Kommentieren aller Apps (mit Ausnahme der Django-Apps) hat nichts verändert ... Modelle müssen noch validiert werden.

Ich weiß wirklich nicht, wo ich jetzt ..

Jeder sucht sein sollte hat eine Idee?

+0

vielleicht ist Ihre Maschine? oder irgendein anderer Prozess frisst nur die CPU-Zeit ... – Evgeny

Antwort

6

Ich habe this question auf serverfault gepostet, vielleicht wird es Ihnen helfen.

Wenn Sie große statische Dateien bereitstellen, werden diese die Reaktion verlangsamen.

Dies ist der Fall in einem beliebigen Modus, wenn Ihre mod_python oder Entwicklungs-Server-Prozess große statischen Dateien wie Bilder, Client-Skripte etc.

Sie den Produktionsserver konfigurieren mögen, wird diese Dateien direkt zu handhaben - also die Umgehung Module.

Übrigens, mod_wsgi ist heutzutage der bevorzugte Weg, um django in der Produktionsumgebung zu betreiben. Wenn Sie Probleme mit Systemdiensten oder Hardware haben, erhalten Sie möglicherweise Hinweise von log messages.

+0

erklärt immer noch nicht, warum es 15 Sekunden dauert, um Modelle zu validieren, wenn die einzigen installierten Modelle von Django sind. Und nein, ich diene keine großen Dateien mit diesen Projekten. Das größte Bild ist ungefähr 100k und die Datenbank ist nicht viel größer. –

+0

Entschuldigung, was meinst du mit validierten Modellen? – Evgeny

+0

$: ~/www/project $ python manage.py runserver 127.0.0.1:8000 Validierung von Modellen ... von dort dauert es zwischen 10 und 15 Sekunden, bevor ich auf diese Nachricht komme; Django Version 1.1 SVN-11376, unter Verwendung der Einstellungen 'project.settings' Entwicklungsserver läuft unter http://127.0.0.1:8000/ Beenden Sie den Server mit CONTROL-C. –

0

Dann dachte ich, es könnte ein DNS Problem sein, aber die Seite lädt sofort , wenn sie mit Apache2 serviert.

Wie dienen Sie Ihrer Django-Website? Ich nehme an, dass Sie mod_python auf Apache2 ausführen?

Vielleicht möchten Sie zunächst starten Sie einen Apache2 lokal auf Ihrem Computer (verwenden Sie MAMP oder WAMP und installieren Sie dort mod_python) und sehen, ob es noch langsam ist. Dann können Sie sagen, ob es sich um ein Django/Python-Problem oder ein Apache/mod_python-Problem handelt.

+0

Ich habe das Problem sowohl auf Apache/mod_python als auch auf dem django-dev-Server, der lokal unter Linux läuft. –

0

Ich habe einmal Remote-Bearbeitung verwendet, um meine Django-Site zu entwickeln. Der Validierungsprozess scheint ebenfalls sehr langsam zu sein. Aber alles andere ist in Ordnung, nicht wie deines.

Es kommt von dem Webserver kann nicht hinzufügen/ändern. Pyc in diesem Verzeichnis.

0

Wenn das Validierungsmodell ewig dauert, suchen Sie nicht nach etwas anderem.Auf einem Dual-Core benötigen einige meiner größten Enterprise-Anwendungen (+30 Modelle) weniger als eine Sekunde zur Validierung.

Das Problem muss irgendwo mit Ihren Modellen liegen, aber ohne Quellcode ist es schwer zu sagen, was das Problem ist. aus Kernspeicher

Mit freundlichen Grüßen, Michael

Open Source Consultant

+1

Es war ein Problem mit MySQL-Namen auflösen. Das Problem trat auf, wenn ich versuchte, einen separaten MySQL-Server (auf dem gleichen LAN) zu verwenden. Die Deaktivierung des Namens MySQL auflösen und nur IPs verwenden löste mein Problem. –

Verwandte Themen