2

我在带有主管 3.0a8-1.1 的 Ubuntu 12.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 反向代理的。

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

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

4

1 回答 1

5

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

Supervisord 只是一个守护进程管理器。它除了启动和管理一个进程之外什么都不做,在这种情况下,它只是 manage.py。

我唯一能想到的是自动重启已打开,这会导致内存泄漏,如果主管不断重启进程,因为它检测到更改并且错误没有被清除。这实际上已在主管 3.0b1 中修复。也许更新你的主管?

于 2013-02-26T09:18:31.843 回答