Супервизор Джанго Гуникорн Гевент Использование памяти

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

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

Есть 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'

и следующие конфиги пушки:

workers = 4
bind = '0.0.0.0:(Site Port Number)'

Все они проксируются через NGINX.

Я запускаю их на большом экземпляре EC2 с 2 ядрами и 7,3 ГБ ОЗУ, что должно быть намного больше, чем мне нужно.

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


person Crazyconoli    schedule 26.02.2013    source источник
comment
Это может быть миллион вещей. Вы пытались использовать пустой проект django и посмотреть, сохраняются ли проблемы с памятью? Сначала вам нужно исключить свой код из набора проблем, а затем беспокоиться о потенциальных ошибках в new-relic, gevent или gunicorn.   -  person Jack Shedd    schedule 26.02.2013
comment
У меня есть 2 сайта, один со стандартной Mezanine, а другой со стандартной Djando CMS. Ни один из них не использует newrelic. Насколько я могу судить, они являются стандартными, поскольку пустой проект не использует достаточно памяти для надежного мониторинга по запросу. Я запустил эти 2 проекта без супервизора, и память очищается, как и должно быть.   -  person Crazyconoli    schedule 26.02.2013


Ответы (1)


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

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

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

person Jack Shedd    schedule 26.02.2013
comment
Большое спасибо, я попробую это. автоперезапуск включен. - person Crazyconoli; 26.02.2013
comment
Обновление супервизора действительно остановило проблему памяти с Guniciorn. У нас также были некоторые утечки в задачах celery, поэтому для подтверждения этого потребовалось немало дополнительных тестов. - person Crazyconoli; 18.03.2013