我将我的第一个Django项目从DjangoEurope移动到Webfaction,这开始出现一个看起来像内存泄漏的问题。随着每个请求服务器进程的内存使用量增加约500kb。它永远不会失败。这种情况一直持续到Webfaction因使用太多内存而导致死亡。
当我在浏览器中刷新Django的管理界面时,我可以清楚地看到这一点(虽然每个页面都会发生这种情况,不仅仅是管理界面 - 我虽然管理界面会是一个不错的测试用例,因为没有我的代码直接在那里)。每次浏览器重新加载时,内存使用量都会增加几百KB。
我使用Webfaction建议的命令测试内存:
ps -u publica -o rss,etime,pid,command
有关我的设置的更多信息:
DEBUG
设置为False
编辑:我创建了一个空的Django项目 - 默认的Django配置加django.contrib.admin
和新的空数据库(使用mysql和postgresql都尝试过)。我开始在浏览器中重新加载Django管理员并观察内存使用情况。起初我看到了问题 - 每次重新加载后内存使用量都会增加。但随后它稳定下来并停止增长。这与我的原始项目在Django Europe上的表现一致。不幸的是,在Webfaction上它似乎永远不会稳定(或者至少不在我帐户可用的内存限制内)。有什么建议?
答案 0 :(得分:13)
我恐怕没有明确的答案。 Graham Dumpleton的提示最有帮助,但不幸的是他没有回答(只是评论),所以没有办法接受他的回应。
虽然我还没有完全解决问题,但以下是其他有类似问题的人的基本提示:
DEBUG
设置为False
mod_python
,请使用mod_wsgi
mod_wsgi
(Webfaction倾向于安装旧版本)mod_wsgi
(Webfaction默认情况下以嵌入模式安装)[感谢Graham Dumpleton提示] 答案 1 :(得分:2)
我们在Webfaction上遇到了类似的问题,但事实证明并不是因为它们。在使用包含大量元素的站点地图时,Django中存在关于高内存使用率的错误:http://code.djangoproject.com/ticket/11572
当我们删除站点地图时,它不再能够达到90 Mb。我想应该提一下,因为用了很长时间进行故障排除。
答案 2 :(得分:1)
我对webfaction也有同样的问题。
我使用的方法,以及哪个webfaction告诉我应该继续使用,运行一个cron作业,每5分钟左右检查一次内存,并重新启动任何失控的应用程序。
在webfaction上的4个python应用程序中,我平均每天重启4次。
答案 3 :(得分:1)
我建议你不要猜。
看看http://code.google.com/p/django-dowser/,它是一个非常有用的应用程序,用于检测内存泄漏并确定代码的哪些部分负责内存消耗。
答案 4 :(得分:1)
检查是否启用了进程内内存缓存后端,如果是,则可能是问题(每个请求都有新的缓存条目)。
答案 5 :(得分:0)
我在Webfaction上也有内存问题 - 直到我添加了我的第五个应用程序之后它们才真正出现。我对我的apache配置进行了一些调整,但最终对我有用的只是切换到mod_wsgi。
答案 6 :(得分:0)
您检查了这些提示吗? - > http://blog.webfaction.com/tips-to-keep-your-django-mod-python-memory-usage-down
我们在WebFaction中部署了一个应用 我们没有这些问题。
您是否将静态文件作为 他们建议吗?
BTW这也很有用: http://fightingrabbits.com/archives/198
答案 7 :(得分:0)
mod_python和mod_wsgi模块都加载到apache中吗?
我知道mod_wsgi不喜欢在它的建筑物中使用mod_python。检查它未加载。