Как найти утечку памяти в приложении Docker + Django?
Я запускаю свое приложение Django с помощью docker compose. Есть 4 контейнера, web, postresql, nginx, cron. Веб-контейнер на моем dev-сервере использует 170MB Ram, в основном работает gunicorn / Django / Python / DRF. Веб-контейнер на моем рабочем сервере использует 600MB Ram. Это определенно растет со временем.
Я установил максимальные запросы и максимальный джиттер запросов для gunicorn (gunicorn byob.wsgi:application --workers=4 --threads=4 --max-requests=1000 --max-requests-jitter=30 --worker-class=gthread -b 0.0.0.0:8000)
>Я не хочу перезапускать контейнер, потому что это может повлиять на некоторых пользователей. Мои вопросы следующие:
- how can I find out if there is a memory leak?
- how can I reduce memory usage?
Я думаю добавить очередь задач на мой сервер с 2 ГБ ram. Но эта проблема может израсходовать память.