L'utilisation de la mémoire augmente avec le temps et le redémarrage de Django n'est pas agréable pour les utilisateurs.
Je ne sais pas comment procéder pour établir le profil de l'utilisation de la mémoire, mais des conseils sur la façon de commencer à mesurer seraient utiles.
J'ai le sentiment qu'il y a quelques étapes simples qui pourraient produire des gains importants. S'assurer que le paramètre "debug" est défini sur "False" est un point essentiel.
Quelqu'un peut-il en suggérer d'autres ? Quelle serait l'amélioration de la mise en cache sur les sites à faible trafic ?
Dans ce cas, je fonctionne sous Apache 2.x avec mod_python. J'ai entendu dire que mod_wsgi est un peu plus léger, mais il serait délicat de changer à ce stade, sauf si je sais que les gains seraient significatifs.
Edit : Merci pour les conseils donnés 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 en Python ?
De plus, comme nous l'avons mentionné, il y a quelques éléments qui rendront difficile le passage au mod_wsgi. J'aimerais donc avoir une idée des gains que je peux espérer avant de m'engager dans cette voie.
Edit : Carl a posté ici une réponse un peu plus détaillée qui vaut la peine d'être lue : Déploiement de Django : Réduire la surcharge d'Apache
Edit : L'article de Graham Dumpleton est le meilleur que j'ai trouvé sur les questions relatives à MPM et mod_wsgi. Je suis cependant 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.
Montage final : J'ai discuté de ce problème avec Webfaction pour voir s'ils pouvaient m'aider à recompiler Apache et voici ce qu'ils m'ont dit à 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."
Cela me ramène à ma question initiale (à laquelle je ne comprends toujours pas grand-chose). Comment faire pour identifier où se situent 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 pour mesurer l'utilisation de la mémoire en Python et aucun spécifique à Django.
Merci pour l'aide apportée par chacun, mais je pense que cette question reste ouverte !
Un autre montage final ;-)
J'ai posé la question sur la liste des utilisateurs de django- et j'ai reçu des réponses très réponses utiles
Honnêtement, la toute dernière mise à jour !
Cela vient d'être publié. C'est peut-être la meilleure solution à ce jour : Profiler la taille des objets de Django et leur utilisation de la mémoire avec Pympler