-1

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

我的 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 应用程序引起的。

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

4

2 回答 2

1

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

于 2013-01-17T13:22:26.197 回答
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

于 2013-01-16T21:42:30.640 回答