Mon utilisation de la mémoire augmente avec le temps et le redémarrage de Django n'est pas gentil avec les utilisateurs.
Je ne sais pas comment établir le profil de l'utilisation de la mémoire, mais quelques conseils sur la façon de commencer à mesurer seraient utiles.
J'ai le sentiment qu'il y a quelques étapes simples qui pourraient produire de gros gains. S'assurer que «debug» est défini sur «False» est une évidence.
Quelqu'un peut-il en suggérer d'autres? Quelle amélioration apporterait la mise en cache sur les sites à faible trafic?
Dans ce cas, je cours sous Apache 2.x avec mod_python. J'ai entendu dire que mod_wsgi est un peu plus léger mais il serait difficile de changer à ce stade à moins que je sache que les gains seraient significatifs.
Edit: Merci pour les conseils jusqu'à présent. Des suggestions pour découvrir ce qui utilise la mémoire? Existe-t-il des guides sur le profilage de la mémoire Python?
De plus, comme mentionné, il y a quelques choses qui rendront difficile le passage à mod_wsgi, donc j'aimerais avoir une idée des gains auxquels je pourrais m'attendre avant de continuer dans cette direction.
Edit: Carl a posté ici une réponse un peu plus détaillée qui vaut la peine d'être lue: Django Deployment: Cutting Apache's Overhead
Edit: L'article de Graham Dumpleton est le meilleur que j'ai trouvé sur le MPM et les trucs liés à mod_wsgi. Je suis plutôt déçu que personne n'ait pu fournir d'informations sur le débogage de l'utilisation de la mémoire dans l'application elle-même.
Final Edit: Eh bien, j'en ai discuté avec Webfaction pour voir s'ils pourraient aider à recompiler Apache et c'est leur mot à ce sujet:
"Je ne pense vraiment pas que vous obtiendrez beaucoup d'avantages en passant à une configuration MPM Worker + mod_wsgi. J'estime que vous pourriez économiser environ 20 Mo, mais probablement pas beaucoup plus que cela."
Alors! Cela me ramène à ma question initiale (dont je ne suis toujours pas plus sage). Comment identifier les problèmes? C'est une maxime bien connue que vous n'optimisez pas sans tester pour voir où vous devez optimiser, mais il y a très peu de tutoriels sur la mesure de l'utilisation de la mémoire Python et aucun n'est spécifique à Django.
Merci pour l'aide de tous mais je pense que cette question est toujours ouverte!
Encore une dernière modification ;-)
J'ai posé cette question sur la liste des utilisateurs de django et j'ai obtenu des réponses très utiles
Honnêtement, la dernière mise à jour de tous les temps!
Cela vient juste d'être publié. Pourrait être la meilleure solution à ce jour: profiler la taille de l'objet Django et l'utilisation de la mémoire avec Pympler