2010-06-15 4 views
4

Mon application mod_wsgi django semble continuer à être rechargée pour les premières requêtes du client. Cela tue ma performanceComment puis-je empêcher une application mod_wsgi django de recharger plusieurs fois?

Après assez de demandes il semble s'installer, et l'application ne semble plus être rechargée. Des pensées sur pourquoi cela se passe et comment je peux l'empêcher?

(je donne les résultats suivants dans httpd.conf: MaxRequestsPerChild 0, de sorte que c'est pas)

Répondre

4

Ceci est probablement parce que vous utilisez le mode intégré de mod_wsgi et Apache sur un système UNIX, peut-être même avec Apache prefork MPM qui fait tout pire. En bref, dans cette configuration, Apache est un serveur web multi-processus. Combiner cela avec le fait que par défaut est de charger paresseusement l'application à la première demande, vous verrez un retard sur la demande initiale pour chaque processus enfant du serveur Apache lors du chargement de l'application.

Même pour le framework Django, cela ne devrait pas être excessif et remettrait en question ce que votre application spécifique fait au démarrage pour provoquer un retard important ou un pic de charge important.

Pour comprendre les problèmes, assurez-vous que vous lisez:

http://blog.dscpl.com.au/2009/03/load-spikes-and-excessive-memory-usage.html http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading

changer ensuite d'utiliser le mode démon de la place mod_wsgi comme indiqué sur les pages wiki mod_wsgi. En début notamment avec:

http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide

S'il est vraiment justifié que vous devez exécuter plus d'un processus démon et pas seulement d'être plein d'espoir à ce que la charge sorte votre application va obtenir, et le temps de chargement est encore une préoccupation, vous pouvez configurer mod_wsgi en utilisant WSGIImportScript et d'autres méthodes pour précharger votre application WSGI au démarrage du processus avant toute demande venir pour Django si, assurez-vous d'utiliser le fichier script WSGI décrit dans:.

http://blog.dscpl.com.au/2010/03/improved-wsgi-script-for-use-with.html

et pas le celui que décrit la documentation de Django lorsqu'elle se charge paresseusement et vous pouvez toujours voir le problème ainsi que les différences de comportement entre les mécanismes d'hébergement WSGI et le serveur de développement intégré.

Questions connexes