我的内存使用量随着时间的推移而增加,重新启动 Django 对用户来说并不友好。
我不确定如何着手分析内存使用情况,但一些关于如何开始测量的提示将是有用的。
我有一种感觉,有一些简单的步骤,可以产生巨大的收益。确保“ debug”设置为“ False”显然是一个大问题。
有人能提出其他建议吗? 在低流量站点上缓存能有多大的改进?
在本例中,我使用 mod _ python 在 Apache 2.x 下运行。我听说 mod _ wsgi 有点瘦,但是在这个阶段很难切换,除非我知道收益很大。
编辑: 谢谢到目前为止的提示。有什么建议可以帮助我们发现是什么消耗了我们的内存?有关于 Python 内存分析的指南吗?
正如前面提到的,切换到 mod _ wsgi 会有一些麻烦,所以我希望在继续朝这个方向努力之前,了解一下我可以期望获得的收益。
编辑: 卡尔在这里发布了一个稍微更详细的值得一读的回复: Django 部署: 削减 Apache 的开销
编辑: 《 Graham Dumpleton 的文章》是我在 MPM 和 mod _ wsgi 相关文章中找到的最好的。我相当失望,没有人能够提供任何信息调试的内存使用在应用程序本身虽然。
最终编辑: 我一直在和网络派讨论这个问题,看看他们是否能够帮助重新编译 Apache,这是他们关于这个问题的说法:
“我真的不认为切换到 MPM Worker + mod _ wsgi 设置会有什么好处。我估计您可以节省大约20MB,但可能不会超过20MB。”
那么!这又把我带回了我最初的问题(我对此仍然一无所知)。如何识别问题所在?众所周知,如果不进行测试,就不会优化需要优化的地方,但是关于测量 Python 内存使用情况的教程很少,而且根本没有专门针对 Django 的教程。
感谢大家的帮助,但我认为这个问题仍然开放!
另一个最终编辑; -)
我在 django 用户列表中问了这个问题,得到了一些 非常有帮助的回复
说实话,这是最后一次更新了!
这是刚刚发布的,可能是目前最好的解决方案: 用 Pympler 分析 Django 对象的大小和内存使用情况