主管Django Gunicorn Gevent内存使用情况

主管Django Gunicorn Gevent内存使用情况,django,ubuntu,gevent,gunicorn,supervisord,Django,Ubuntu,Gevent,Gunicorn,Supervisord,我用supervisor 3.0a8-1.1在Ubuntu12.04上运行Django 1.4站点,在gunicorn 0.17.2和gevent 0.13.8中遇到了一个奇怪的问题 在服务器没有响应之前,Supervisor的内存使用量一直在增长 共有5个站点具有以下监控器配置: command=/app/virtualenv/bin/newrelic-admin run-program /app/virtualenv/bin/python /app/manage.py run_gunicor

我用supervisor 3.0a8-1.1在Ubuntu12.04上运行Django 1.4站点,在gunicorn 0.17.2和gevent 0.13.8中遇到了一个奇怪的问题

在服务器没有响应之前,Supervisor的内存使用量一直在增长

共有5个站点具有以下监控器配置:

command=/app/virtualenv/bin/newrelic-admin run-program /app/virtualenv/bin/python /app/manage.py run_gunicorn -c gunicorn_conf.py -k gevent
directory=/app
autostart=true
autorestart=true
stopsignal=KILL
killasgroup=true
environment=NEW_RELIC_CONFIG_FILE='/app/newrelic.ini'
以及以下gunicorn配置:

workers = 4
bind = '0.0.0.0:(Site Port Number)'
这些都是通过NGINX反向代理的

我在一个大型EC2实例上运行这些,它有2个内核和7.3GB的RAM,这应该比我需要的多得多


还有其他人遇到过这个问题吗?

如果在没有supervisord的情况下运行项目时内存清理正确,那就令人费解了

Supervisord只是一个守护进程管理器。它除了启动和管理一个流程之外什么都不做,在本例中,这个流程就是manage.py


我所能想到的唯一一件事是,如果主管不断地重新启动进程,因为它检测到更改,并且错误没有被清除,那么autorestart就会打开,这已经被认为会导致内存泄漏。这是我的。可能会更新你的主管?

这可能是很多事情。您是否尝试过使用一个空白的django项目,看看内存问题是否仍然存在?你需要首先从问题集中删除你的代码,然后担心new relic、gevent或gunicorn中的潜在错误。我有两个站点,一个是标准的Mezannine,另一个是标准的Djando CMS。他们都没有使用newrelic。这些都是我所能得到的标准,因为据我所知,一个空白项目没有使用足够的内存来可靠地监控请求。我已经在没有主管的情况下运行了这两个项目,内存得到了应有的清理。非常感谢,我会尝试一下。自动重新启动已打开。更新管理器确实已使用Gunicorn停止了内存问题。我们也有一些芹菜任务泄漏,这就是为什么它已经采取了相当多的进一步测试,以证实这一点。