0

这是专门托管在 webfaction 上的,django 项目只有一个静态应用程序,仅此而已。它还运行 celeryd 和 memcached,但这些进程具有预期的内存消耗。

问题的一些线索

将 debug 设置为 true 或 false 对内存消耗的影响为零。

当我运行 apache2/bin/stop,然后 apache2/bin/start 消耗显着下降,直到我重新加载站点,然后它回到这个数量。

这是命令 ps -u username -o rss,command 的显着输出

2120 /home/path/apache2/bin/httpd.worker -f /home/path/apache2/conf/httpd.conf
46408 /home/path/apache2/bin/httpd.worker -f /home/path/apache2/conf/httpd.conf
47124  /home/path/apache2/bin/httpd.worker -f /home/path/apache2/conf/httpd.conf
4800 /home/path/apache2/bin/httpd.worker -f /home/path/apache2/conf/httpd.conf

实例的数量是预期的并且是正常的,只是第 2 次和第 3 次的内存消耗很麻烦。

django 项目使用了一堆 3rd 方库和应用程序,所以可能存在内存泄漏?除此之外,它实际上只是一堆查询集调用..所有会消耗大量内存的东西,比如图像重新调整大小,都在模板中完成,所以不可能那样。

编辑:这是第 3 部分应用程序:

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'mptt',
'userena',
'guardian',
'django_facebook', 
'django.contrib.admin',
'django.contrib.admindocs',
'djcelery',
'kombu.transport.django',
)

谢谢您的帮助

4

1 回答 1

4

我建议您使用Dozer来查看您的内存消耗。将以下内容添加到您的 wsgi.py:

from dozer import Dozer
application = Dozer(application)

然后加载“http://example.org/_dozer/index”。

于 2012-10-04T22:17:27.863 回答