我的内存使用量随着时间的推移而增加,并且重新启动Django对用户而言并不友好。
我不确定如何分析内存使用情况,但是一些有关如何开始测量的提示将很有用。
我感觉有些简单的步骤可以带来很大的收益。确保将“调试”设置为“假”是显而易见的。
有人可以建议别人吗?在低流量的网站上缓存会带来多少改善?
在这种情况下,我使用mod_python在Apache 2.x下运行。我听说mod_wsgi较为精简,但在此阶段进行切换将非常棘手,除非我知道收益会很大。
编辑:感谢到目前为止的提示。关于如何发现内存用尽的任何建议?是否有任何有关Python内存分析的指南?
同样如前所述,有些事情会使切换到mod_wsgi变得很棘手,因此我想对在朝这个方向努力之前所能获得的收益有所了解。
编辑:卡尔在这里发布了更详细的回复,值得一读:Django部署:减少Apache的开销
编辑: Graham Dumpleton的文章是我在MPM和mod_wsgi相关的东西上找到的最好的文章。我很失望,但是没人能提供有关调试应用程序本身的内存使用情况的任何信息。
最终编辑:好吧,我一直在与Webfaction讨论这个问题,看他们是否可以协助重新编译Apache,这就是他们的话:
“我真的认为切换到MPM Worker + mod_wsgi设置不会给您带来太大的好处。我估计您可能可以节省20MB左右,但可能不超过20MB。”
所以!这使我回到了最初的问题(我仍然不明智)。如何确定问题所在?这是一个众所周知的准则,如果不进行测试以查看需要优化的地方就不会进行优化,但是关于测量Python内存使用情况的教程的方式很少,而针对Django的教程则完全没有。
感谢大家的帮助,但我认为这个问题仍然悬而未决!
另一个最终编辑;-)
我在django-users列表上问了这个,并得到了一些非常有帮助的回复
老实说,有史以来最后一次更新!
这是刚刚发布。可能是迄今为止最好的解决方案:使用Pympler分析Django对象的大小和内存使用情况