我的内存使用量随着时间的推移而增加,并且重新启动 Django 对用户不利。
我不确定如何分析内存使用情况,但一些关于如何开始测量的提示会很有用。
我有一种感觉,有一些简单的步骤可以产生巨大的收益。确保“调试”设置为“假”显然是一件大事。
任何人都可以建议其他人吗?在低流量站点上缓存会有多大改进?
在这种情况下,我使用 mod_python 在 Apache 2.x 下运行。我听说 mod_wsgi 有点精简,但在这个阶段切换会很棘手,除非我知道收益会很大。
编辑:感谢到目前为止的提示。有什么建议如何发现内存用尽了吗?是否有 Python 内存分析的指南?
另外如前所述,有一些事情会使切换到 mod_wsgi 变得很棘手,所以我想在朝着这个方向前进之前对我可以期待的收益有所了解。
编辑: Carl 在这里发布了一个更详细的回复,值得一读:Django Deployment:Cutting Apache's Overhead
编辑: Graham Dumpleton 的文章是我在 MPM 和 mod_wsgi 相关内容上找到的最好的文章。我相当失望的是,没有人可以提供任何有关调试应用程序本身内存使用情况的信息。
最终编辑:嗯,我一直在与 Webfaction 讨论这个问题,看看他们是否可以帮助重新编译 Apache,这是他们对此事的看法:
“我真的认为切换到 MPM Worker + mod_wsgi 设置不会给您带来太多好处。我估计您可能能够节省大约 20MB,但可能不会更多。”
所以!这让我回到了我最初的问题(我仍然对此一无所知)。如何确定问题所在?这是一个众所周知的格言,没有测试就不会优化,看看你需要优化的地方,但是关于测量 Python 内存使用的教程很少,而且根本没有特定于 Django。
感谢大家的帮助,但我认为这个问题仍然悬而未决!
另一个最终编辑;-)
我在 django-users 列表上问了这个问题,得到了一些非常有用的回复
老实说最后一次更新!
这是刚刚发布的。可能是最好的解决方案:Profiling Django object size and memory usage with Pympler