这是专门托管在 webfaction 上的,django 项目只有一个静态应用程序,仅此而已。它还运行 celeryd 和 memcached,但这些进程有预期的内存消耗。
问题的一些线索
将调试设置为 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 项目使用了一堆第 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',
)
感谢帮助
最佳答案
我建议您使用 Dozer看看你的内存消耗。将以下内容添加到您的 wsgi.py:
from dozer import Dozer
application = Dozer(application)
然后加载“http://example.org/_dozer/index”。
关于python - 我的 Django 项目是否消耗了异常数量的 RAM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12720839/