2015-05-29 3 views
2

Я разрабатываю сайт с использованием Django1.7 на python3.4 вместе с MySql как механизм базы данных. В течение следующих 15-20 дней я планирую проверить это. На сайте есть что-то вроде linkedin с точки зрения функциональности и сложности, и я ожидаю получить около 20-30 тысяч пользователей в течение следующих 6 месяцев. Я узнал о MySql во время разработки моего веб-сайта. Я использую Django-debug-toolbar и пытаюсь сократить время запроса и уменьшить количество соединений. У меня есть несколько вопросов:Проверка моего сайта на производительность базы данных и обработку трафика

  1. Какие инструменты могут быть использованы для создания HTTP-запроса для автоматического заполнения базы данных, а также для запроса различных страниц.

  2. Достаточно ли django-debug-toolbar выполнить профилирование и оптимизацию, учитывая увеличение количества запросов от нескольких пользователей.

  3. Должен ли я работать над уменьшением числа обращений к базе данных или размера запросов, которые django будет кэшировать и как использование ОЗУ повлияет на производительность веб-сайта.

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

ответ

4

Самый большой фактор в производительности SQL - это количество строк в используемых вами таблицах. Вы должны выяснить, как загрузить 50 тысяч поддельных пользователей и 1 миллион поддельных узлов в тестовую базу данных.

Тогда угадайте, какое из ваших просмотров страниц будет наиболее распространенным. Найдите бесплатный инструмент тестирования нагрузки в сети (их довольно много) и используйте его, чтобы сильно ударить по этой странице на вашем сервере.

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

Тогда угадайте на своем втором наиболее популярном просмотре страниц и повторите. Продолжайте движение, пока не закончите время.

Имейте в виду, что это догадки. По мере того, как ваш сервис растет в пользователей, вам нужно следить за просмотрами страниц, которые предпочитают ваши настоящие пользователи, и следить за этими медленными запросами.

Это будет, если вы добавите пользователей со скоростью, которую вы планируете, возьмите значительную часть своего времени в течение первого года работы.

Читать веб-сайт под названием http://use-the-index-luke.com/

+0

Спасибо сэр за большой совет и методического подхода, предложенного выше. Я начал читать об индексации. Тем не менее, я хотел бы получить несколько более конкретные рекомендации относительно того, какие конкретные инструменты я должен использовать, будь то apache2, установленный на сервере ubuntu с 1 ГБ ОЗУ, способен обрабатывать нагрузку или нет, следует ли пытаться минимизировать удары базы данных или уменьшите загрузку запросов в памяти. Для этого я оставляю вопрос открытым. – Rohit

+0

С уважением, такие вопросы, как те, о которых вы спрашиваете (сколько оперативной памяти? Apache или какой-то другой сервер? Кеширование результата и т. Д.) - это то, что вы можете узнать только из опыта * с помощью своего веб-приложения. * Нагрузочное тестирование, как я описал, это просто способ ускорить ваш опыт. –

 Смежные вопросы

  • Нет связанных вопросов^_^