Определить количество поддерживаемых пользователей для веб-приложения - PullRequest
1 голос
/ 23 июня 2009

Я занимаюсь разработкой веб-приложения asp.net для бизнес-клиентов. Может ли кто-нибудь дать рекомендации о том, как определить количество пользователей, которые может поддерживать мое приложение?

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

Ответы [ 5 ]

3 голосов
/ 23 июня 2009

Вы можете использовать сервер состояний сеанса, запущенный на втором сеансе с поддержкой box или sql server, чтобы обойти проблему с одним ящиком.

Что касается рассматриваемого вопроса, то нет реального способа определить, что, кроме как наладить работу производственного оборудования, настроить приложение и запустить нагрузочные тесты, пока вы не сможете выяснить, где она ломается. Это не обязательно даст вам реальное число, так как вы должны делать предположения о том, что делают пользователи, и практически невозможно моделировать эффекты сетевого облака в тестовых средах.

1 голос
/ 23 июня 2009

Только вы / ваша команда могут определить точные цифры, которые могут быть поддержаны.

Ваш ключ к этому - глубокое понимание вашей проблемной области и четкое разделение уровней обработки.

Разделение позволяет локализовать узкие места и гораздо проще настроить производительность самого низкого фактора производительности, а затем перейти к следующему уровню / ограничению производительности.

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

  1. Дизайн в масштабе
  2. Проектирование, чтобы иметь отдельные «слои» для настройки производительности, а также для вашего здравого смысла - это также лучший принцип проектирования, и это напрямую, одна из причин, по которой разработка сегментирована.
  3. Тестирование - проектирование испытаний на прохождение / прохождение слоев в соответствии с проектной спецификацией является лишь одним из аспектов тестирования. На ваш вопрос отвечает влияние на производительность технологий, архитектуры и инструментов, которые вы решите использовать в своем приложении. Запланируйте внесение изменений в каждую часть вашего приложения для решения проблем производительности.
  4. Соберите метрики производительности из каждого «слоя», настройте каждый слой, как только вы обнаружите природу проблемы производительности. Планируйте и узнайте, как количественно измерить производительность каждого слоя.
  5. В какой-то момент вы БУДЕТЕ пойти на компромисс между производительностью и факторами «круто / вау». Каждый из них повлияет на вашу способность продавать свое решение, и затем вы должны определить, какое из них окажет наибольшее влияние.

Это один из факторов PAIN , который я использую для измерения качества в проектах - P lan A ll I ncremental N читает и обсуждает в другом месте и в блогах.

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

0 голосов
/ 23 июня 2009

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

0 голосов
/ 23 июня 2009

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

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

0 голосов
/ 23 июня 2009

Итак, вы знаете, что сессия может быть сделана для работы с несколькими веб-серверами очень просто, перенеся ее в базу данных sql server.

Краткое руководство доступно здесь

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

...