Здравствуйте
Есть проект на Django с 5000+ пользователей
В рамках этого проекта выполняется большой алгоритм (около 7 вложенных циклов)
Сам считается на каждые 30 секунд текущего дня, в итоге вход в самые низкую функцию происходит больше 200 000 раз. В среднем выполнение расчета занимает ~3 секунды, при большем объеме может доходить на 5-10 секунд.
Проблема в том, что при выполнении этой операции, сам сервер начинает висеть и ждать пока другой пользователь получит результат расчета.
Хочется максимально оптимизировать prod версию.
Django работает в одном экземпляре в docker-е. Работает с помощью daphne. В проекте используется много websocket событий (сказали, что только в нем все с вебсокетом работает как часы)
Запускаю контейнер с помощью команды. Nginx проксирует все запросы в него.
command: sh -c "python manage.py migrate && daphne -b 0.0.0.0 --proxy-headers core.asgi:application"
Сам сервер 8 ядер, 16 оперативки и ssd на 200
Может стоит изменить публикацию или есть какие-то подводные камни о которых я не знаю. Буду рад выслушать все советы!