【发布时间】:2011-01-18 14:20:06
【问题描述】:
我将我的第一个 Django 项目从 DjangoEurope 移到了 Webfaction,这引发了一个看起来像内存泄漏的问题。服务器进程的每个请求内存使用量都会增加大约 500kb。它永远不会下降。这种情况一直持续到 Webfaction 因使用过多内存而将其杀死。
当我在浏览器中刷新 Django 的管理界面时,我可以清楚地看到这一点(尽管这发生在每个页面上,不仅仅是管理界面 - 我虽然管理界面将是一个很好的测试用例,因为没有我的代码直接在那里)。每次重新加载浏览器时,内存使用量都会增加数百 KB。
我使用 Webfaction 建议的命令测试内存:
ps -u publica -o rss,etime,pid,command
更多关于我的设置:
- Django 1.1(稳定版)
- 使用 Apache 和 mod_wsgi 的默认 Webfaction Django 设置
-
DEBUG设置为False - Webfaction 的 MySQLdb 1.2.2,但听说有一些问题后,我尝试了 1.2.3c 版本。没有帮助。
编辑:我创建了一个空的 Django 项目 - 默认 Django 配置加上 django.contrib.admin 和新的空数据库(用 mysql 和 postgresql 都试过)。我开始在浏览器中重新加载 Django admin 并观察内存使用情况。起初我看到问题正在发生 - 每次重新加载后内存使用量都会增加。但随后它稳定下来并停止增长。这与我最初的项目在 Django Europe 上的表现一致。不幸的是,在 Webfaction 上,它似乎永远不会稳定(或者至少不在我帐户可用的内存限制范围内)。有什么建议吗?
【问题讨论】:
-
如果您在模型中做一些泄漏的事情,它肯定会出现在管理员中,所以我不确定您是否已将您的代码排除为罪魁祸首。值得一提的是,我已经在 Webfaction 上运行 Django 应用程序一年多了,还没有遇到过这样的问题。
标签: python django memory-leaks mod-wsgi