Приложение на основе Django может выйти из-под контроля - как я могу его масштабировать? - PullRequest
1 голос
/ 05 декабря 2011

Мне нужны некоторые рекомендации в области серверной архитектуры для Django.

Моя текущая статистика по веб-приложениям на Django (достигнута через две недели - работает на одном VPS с Apache, mod_wsgi, mysql):

  • 10000 пользователей всего
  • 20 средних запросов / пользователь / день
  • 200 000 запросов / день
  • 8 000 пользователей ежедневно посещают сайт

Где приложение может достичь (где я бы запаниковал - это предполагает приблизительно линейный рост):

  • 200 000 пользователей всего
  • 20 средних запросов / пользователь / день
  • 4 000 000 запросов / день
  • 160 000 пользователей получают доступ к сайту ежедневно

Проблема здесь на самом деле заключается только в обработке запросов страниц.Я храню только короткие строки текстовых данных, поэтому размер БД не должен быть проблемой.

Какую архитектуру сервера я должен настраивать с точки зрения аппаратного и программного обеспечения?Мне нужно подумать о кэшировании, балансировке нагрузки, нескольких серверах обработки, нескольких серверах БД и т. Д., Но я не знаю, с чего начать.

1 Ответ

1 голос
/ 05 декабря 2011

Ваш прогнозируемый рост ~ 45 / запросов в секунду действительно не такой интенсивный.Я думаю, что использование стандартного балансировщика нагрузки nginx перед вашими веб-серверами справится со всем.Если ваш доступ к БД не очень интенсивный, вы, вероятно, преуспеете только с машиной с 1 БД.

Я действительно думаю, что самое главное не делать какой-либо преждевременной оптимизации.Решайте проблемы по мере их появления, иначе вы можете потерять много времени.

Существуют тонны кэширования, конфигурации с несколькими серверами и руководства по балансировке нагрузки.

Google - хорошее место для начала.

Рост трафика - это стандартная проблема, по этим вопросам нет недостатка в учебниках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...