我在Ubuntu 12.04和supervisor 3.0a8-1.1上运行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.3 on内存的大型EC2实例上运行这些程序,这应该比我需要的要多得多。
有没有其他人遇到过这个问题?
发布于 2013-02-26 17:18:32
如果在没有supervisord的情况下运行项目时内存被正确清除,这是令人费解的。
Supervisord只是一个守护进程管理器。它除了启动和管理一个进程之外什么都不做,在本例中,这个进程就是manage.py。
我唯一能想到的是,如果supervisor因为检测到更改而错误未清除而不断重启进程,则会打开自动重启,这已知会导致内存泄漏。这是actually fixed in supervisor 3.0b1。或者更新你的主管?
https://stackoverflow.com/questions/15084052
复制相似问题