Что происходит, когда на живом сайте слишком много пользователей? - PullRequest
1 голос
/ 11 октября 2009

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

Ответы [ 5 ]

6 голосов
/ 11 октября 2009

Не волнуйтесь, даже очень популярные сайты проходят через это. Хорошее кодирование - это всегда плюс, но иногда даже этого недостаточно. Твиттер, являющийся идеальным примером, начал свои сообщения на Ruby, но вынужден был перейти на Scala, поскольку они становились все более и более популярными.

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

2 голосов
/ 11 октября 2009

Зависит от технологий, которые вы используете, и от того, как написан код, который вы пишете.

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

Лучший способ понять ваши ограничения по масштабируемости - это нагрузочное тестирование и надлежащий контроль качества.

Если вы не сделаете это правильно, ваши пользователи наверняка будут недовольны, когда вы начнете 503ing или тайм-аут. :-)

2 голосов
/ 11 октября 2009

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

1 голос
/ 11 октября 2009

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

Однозначно сказать: «Это будет медленно», но как только вы пройдете определенную точку, ваше приложение может вылететь или случайно выдать ошибку 500 страниц пользователям.

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

Если у вас есть SSL, убедитесь, что ваши инструменты имитируют множество различных соединений SSL, а не просто разные HTTP-запросы (рукопожатия SSL требуют дополнительных ресурсов)

1 голос
/ 11 октября 2009

Если сайт разработан таким образом, что у вас может быть несколько серверов / слоев доступа к данным, проблема масштабируемости не должна быть проблемой.

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

Но из прошлого опыта. Выполните настройку, как только это потребуется. Напишите легко понятный и поддерживаемый код и исправьте проблемы с производительностью по мере возникновения.

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