@steopcik

Сайт на Django 2.2 медленно работает на 800 одновременных юзеров, как оптимизировать?

Сайт на Django 2.2 с одной страницей и формой которую нужно заполнит и отправить для получения ответа на действие.
Когда было 100+- одновременных посетителей то сайт загружался за 2-3 секунды и форма работала быстро.
Сейчас по в среднем 800 посетителей во одном моменте из которых делаю 250 запрос в минуту.
Процесс такой, пользователь вбил запрос в строку и нажал кнопку которая отправляет POST запрос на бэк а бэк отправляет POST запрос на внешний API, и возвращает ответ обратно пользователю.
Сейчас время загрузки страницы о 10 до 20 секунд просто на открытие страницы.
Хочу чтоб было в районе двух секунд как раньше.

Сервер
VPS - CentOS 7 - одно ядро на 2,5 герц - 1гб оперативы
Оперативка всегда заполнена на 30%
Загрузка проца скачет редко до 80%, в среднем 10%-20%

Что можно предпринять для исправления ситуации? В какую сторону копать?
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 2
@deliro
Агрессивное программирование
Увеличить количество воркеров. Сначала попробовать треды, потом процессы. Потом eventlet, если ничего экзотического нет.
Ответ написан
@bacon
Процесс такой, пользователь вбил запрос в строку и нажал кнопку которая отправляет POST запрос на бэк а бэк отправляет POST запрос на внешний API, и возвращает ответ обратно пользователю.

Тот случай когда всё портит синхронность, варианта два: простой и сложный
Cложный - работу с внешним API вынести в фон, это celery или подобные очереди задач.
Простой - т.к логика сервиса очень простая, то можно без проблема переписать на асинхроный движок, aiohttp или подобный.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы