2013-02-26 5 views
1

Я запускаю Django 1.4 сайты на Ubuntu 12.04 с супервайзером 3.0a8-1.1 и столкнулся с странной проблемой с gunicorn 0.17.2 и gevent 0.13.8.Супервайзер Django Gunicorn Gevent Использование памяти

Использование памяти диспетчера продолжает расти, пока сервер не реагирует.

Есть 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,3 ГБ оперативной памяти, которые должны быть больше, чем мне нужно.

Неужели кто-нибудь еще сталкивается с этой проблемой?

+0

Это может быть миллион вещей. Вы пытались использовать пустой проект django и видеть, сохраняются ли проблемы с памятью? Сначала вам нужно устранить свой код из заданной проблемы, а затем беспокоиться о потенциальных ошибках в новой реликвии, gevent или gunicorn. –

+0

У меня есть 2 сайта, один со стандартным Mezannine, а другой со стандартным Djando CMS. Ни один из них не использует newrelic. Это стандартные, как я могу получить, поскольку пустой проект не использует достаточную память для надежного мониторинга по запросу, насколько я могу судить. Я запустил эти 2 проекта без супервизора, и память очищается, как и должно. – Crazyconoli

ответ

4

Если память правильно очищается, когда вы просто запускаете проекты без надзора, это непонятно.

Supervisord - всего лишь диспетчер демона. Он ничего не делает, кроме запуска и управления процессом, который в этом случае просто управляется.py.

Единственное, что я мог подумать, это включить автозапуск, который, как известно, вызывает утечку памяти, если диспетчер постоянно перезапускает процесс, потому что он обнаруживает изменение, а ошибки не очищаются. Это было actually fixed in supervisor 3.0b1. Может быть, обновите своего руководителя?

+0

Спасибо большое, я попробую. autorestart включен. – Crazyconoli

+0

Обновление диспетчера действительно остановило проблему памяти с Guniciorn. У нас также были некоторые утечки в задачах сельдерея, поэтому для подтверждения этого потребовалось немало дополнительных испытаний. – Crazyconoli