我将我的第一个Django项目从DjangoEurope转移到Webfaction,这引发了一个看起来像内存泄漏的问题。每一次请求,服务器进程的内存使用量就会增加约500kb。它永远不会下降。这一直持续到网络势力因为使用太多内存而杀死它。
当我在浏览器中刷新Django的管理界面时,我可以清楚地看到这一点(尽管这发生在每个页面上,不仅仅是管理界面——我认为管理界面是一个不错的测试用例,因为那里没有我的代码)。每重新加载一个浏览器,内存使用量就会增加几百千字节。
我使用Webfaction建议的命令测试内存:
ps -u publica -o rss,etime,pid,command
有关我的设置的详细信息:
DEBUG
设置为False
编辑:我创建了一个空的Django项目-默认Django配置加上django.contrib.admin
和新鲜的空数据库(在mysql和postgresql中都试过)。我开始在浏览器中重新加载Django admin并观察内存使用情况。一开始我看到了问题的发生-每次重新加载后内存使用量都会增加。但后来它稳定下来并停止生长。这与我最初的项目在安哥拉欧洲的表现是一致的。不幸的是,在Webfaction上,它似乎永远不会稳定(或者至少不会在我的帐户可用内存的限制内)。有什么建议吗?
我们在网络派系上也有类似的问题,但事实证明根本不是因为他们。Django中有一个bug,当使用包含大量元素的站点地图时,内存使用率很高:http://code.djangoproject.com/ticket/11572
当我们移除站点地图时,它在当时不会再增加90MB。只是觉得我应该提一下,因为它花了很长时间来使用故障排除。
恐怕我没有确切的答案。格雷厄姆·邓普尔顿的建议非常有用,但不幸的是他没有给出答案(只是评论),所以没有办法接受他的回应。
尽管我还没有完全解决这个问题,但对于其他有类似问题的人,这里有一些基本的建议:
DEBUG
设置设置为False
mod_python
,使用mod_wsgi
mod_wsgi
(Webfaction倾向于安装旧版本)mod_wsgi
(默认情况下,Webfaction将其安装在嵌入式模式下)[感谢Graham Dumpleton提供的提示]我对网络势力也有同样的问题。
我使用的方法,以及webfaction告诉我应该继续使用的方法,是运行cron作业,每隔5分钟左右检查一次内存,并重新启动任何失控的应用程序。
在webfaction上的4个python应用程序中,我平均每天重启4次。
相关问题 更多 >
编程相关推荐