Как найти утечку памяти в приложении 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)

>

Я не хочу перезапускать контейнер, потому что это может повлиять на некоторых пользователей. Мои вопросы следующие:

  1. how can I find out if there is a memory leak?
  2. how can I reduce memory usage?

Я думаю добавить очередь задач на мой сервер с 2 ГБ ram. Но эта проблема может израсходовать память.

Вернуться на верх