首页 文章

Django内存使用率随着每个请求而上升

提问于
浏览
26

我将我的第一个Django项目从DjangoEurope转移到Webfaction,这开始出现一个看起来像内存泄漏的问题 . 随着每个请求服务器进程的内存使用量增加约500kb . 它永远不会失败 . 这种情况一直持续到Webfaction因使用太多内存而导致死亡 .

当我在浏览器中刷新Django的管理界面时,我可以清楚地看到这一点(虽然每个页面都会发生这种情况,不仅仅是管理界面 - 我虽然管理界面会是一个不错的测试用例,因为那里没有我的代码) . 随着每个浏览器重新加载,内存使用量增加几百千字节 .

我使用Webfaction建议的命令测试内存:

ps -u publica -o rss,etime,pid,command

More about my setup:

  • Django 1.1(稳定)

  • 使用Apache和mod_wsgi设置默认Webfaction Django

  • DEBUG 设为 False

  • 来自Webfaction的MySQLdb 1.2.2,但在听到它有一些问题之后我尝试了1.2.3c版本 . 没有帮助 .

Edit: 我创建了一个空的Django项目 - 默认的Django配置加上 django.contrib.admin 和新的空数据库(同时尝试使用mysql和postgresql) . 我开始在浏览器中重新加载Django管理员并观察内存使用情况 . 起初我看到了问题 - 每次重新加载后内存使用量都会增加 . 但随后它稳定下来并停止增长 . 这与我的原始项目在Django Europe上的表现一致 . 不幸的是,在Webfaction上它似乎永远不会稳定(或者至少不在我帐户可用的内存限制内) . 有什么建议?

8 回答

  • 1

    我恐怕没有明确的答案 . Graham Dumpleton的提示最有帮助,但不幸的是他没有回答(只是评论),所以没有办法接受他的回答 .

    虽然我还没有完全解决这个问题,但以下是其他有类似问题的人的基本提示:

  • 0

    我们在Webfaction上遇到了类似的问题,但事实证明,当使用包含大量元素的站点 Map 时,Django中存在一个关于高内存使用率的错误:http://code.djangoproject.com/ticket/11572

    当我们删除站点 Map 时,它不再会在当时达到90 Mb . 我想应该提一下,因为它需要很长时间才能排除故障 .

  • 1

    我对webfaction也有同样的问题 .

    我使用的方法,以及哪个webfaction告诉我应该继续使用,运行一个cron作业,每5分钟左右检查一次内存,并重新启动任何失控的应用程序 .

    在webfaction的4个python应用程序中,我平均每天重启4次 .

  • 2

    我建议不要猜 .

    看一下http://code.google.com/p/django-dowser/,它是一个非常有用的应用程序,用于检测内存泄漏并确定代码的哪些部分负责内存消耗 .

  • 13

    检查进程内存缓存后端是否已启用,如果是,则可能是问题(每个请求的新缓存条目) .

  • 1

    我在Webfaction上也有内存问题 - 直到我添加了我的第五个应用程序之后它们才真正出现 . 我试着对我的apache配置进行一些调整,但最终对我有用的只是切换到mod_wsgi .

  • 0

    mod_python和mod_wsgi模块都加载到apache中吗?

    我知道mod_wsgi不喜欢在它的建筑物中使用mod_python . 检查未加载 .

  • 0

相关问题