主管 Django Gunicorn Gevent 内存使用

Cra*_*oli 2 django ubuntu gevent supervisord gunicorn

我正在使用主管 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'
Run Code Online (Sandbox Code Playgroud)

以及以下 gunicorn 配置:

workers = 4
bind = '0.0.0.0:(Site Port Number)'
Run Code Online (Sandbox Code Playgroud)

这些都是通过 NGINX 反向代理的。

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

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

Jac*_*edd 5

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

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

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