用mod_wsgi在apache上运行django会导致内存泄漏吗?

时间:2013-01-16 21:08:41

标签: django apache mod-wsgi

我目前的配置已经运行了一年多。

我的apache配置为包含此mod_wsgi配置:

    Alias /uploads/ "/home/django/myproject/uploads/"
<Directory "/home/django/myproject/uploads/">
    Order allow,deny
    Options Indexes
    Allow from all 
    IndexOptions FancyIndexing
</Directory>

Alias /static/ "/home/django/myproject/sitestatic/"
<Directory  "/home/django/myproject/sitestatic/">
    Order allow,deny
    Options Indexes
    Allow from all 
    IndexOptions FancyIndexing
</Directory>

WSGIScriptAlias / "/home/django/myproject/apache/django.wsgi"
<Directory "/home/django/myproject/apache">
    Order deny,allow
    Allow from all 
</Directory>

我的/home/django/myproject/apache/django.wsgi看起来像这样:

import os
import sys 

sys.path.append('/home/django')
sys.path.append('/home/django/myproject')


os.environ['DJANGO_SETTINGS_MODULE']='myproject.settings'

import djcelery
djcelery.setup_loader()

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

我猜是很典型的。

在我的httpd.conf中,我有这一行:

    Include "/home/django/myproject/apache/apache_django_wsgi.conf"

每当加载此conf时,apache进程会以100%跳转,从而导致MemoryErrors ...

当我注释掉上面的include行时,启动apache是​​顺利的,因为它应该是内存明智的。

我无法在apache日志中找到任何内容,甚至将其设置为调试模式。

很明显这个内存泄漏,如果我可以调用它,它是由mod_wsgi或我的django应用程序引起的。

您如何建议跟踪错误/隔离问题?任何反馈都表示赞赏!

2 个答案:

答案 0 :(得分:1)

这个问题是我的一个django应用程序中的一个错误功能,它将所有内容保存在内存中。

答案 1 :(得分:0)

您可以在apache配置中配置mod_wsgi使用的资源。试试这个

    WSGIDaemonProcess yourname.com processes=1 threads=2 display-name=%{GROUP}
    WSGIProcessGroup yourname.com
    WSGIScriptAlias / /home/django/myproject/apache/django.wsgi

您可以设置进程数和线程数等。请查看http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIDaemonProcess

中的选项