Как я могу сделать планирование емкости своего веб-приложения и определить архитектуру развертывания? - PullRequest
4 голосов
/ 20 января 2011

У меня есть веб-приложение ASP.net, развернутое на небольшом экземпляре AWS (Dual Core AMD, 2,60 ГГц, 1,7 ГБ ОЗУ).Я хотел бы выполнить нагрузочное тестирование на этом сервере для 300 одновременно работающих пользователей, а в будущем я хочу разработать предварительную архитектуру планирования и развертывания емкости для 250 000 зарегистрированных пользователей для моего приложения.

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

Вариант использования и сценарий моего приложения будут такими:

Сценарий - 250, 000 зарегистрированных пользователей в базе данных

Параллелизм - 5% - 7% - примерно 17 500

У каждого пользователя есть книжная полка и предполагается, что каждый пользователь подписан на 10 книг.Каждая книга имеет размер около 25 МБ и 400 страниц

Варианты использования

  1. Логин пользователя

    • База данныхаутентификация и авторизация
  2. Просмотр книжной полки с изображениями книг

    • Книжная полка (.swf) - 400 КБ (загружается для каждогопользователь)

    • 10 изображений книг будут загружены (20 КБ на изображение) (приблизительно)

    • catalog.xml - 30 КБ / пользователя для выделенногодля пользователя

    • Примечание : Приблизительно 650 КБ данных загружаются на клиентскую машину

  3. Просмотр книги: при нажатии на изображение книги следующие файлы и ее размеры будут загружены на клиентский компьютер

    • Один раз
    • Reader.swf - 950 КБ (первая загрузка)
    • XML-данные размером приблизительно 100 КБ / на книгу (по клику)
      • Book.xml
      • Annotation.xml
      • Catalog.xml
      • Usersettings.xml 40 КБ * 4 = 160 КБ на пользователя (.swf)
    • Примечание. На клиентский компьютер загружается приблизительно 1200 КБ данных

Может кто-нибудь подсказать, пожалуйста, как я могу продолжить это?

Большое спасибо заранее, Амар

Ответы [ 2 ]

3 голосов
/ 24 января 2011

Достижение первой цели (тестирование 300 пользователей) довольно просто - выберите инструмент нагрузочного тестирования, создайте сценарии и протестируйте.Затем настройте / оптимизируйте и повторите.

Но я думаю, что ваш главный вопрос заключается в том, как приблизиться к тестированию и планированию на полную мощность - вы говорите, что ~ 18k одновременных пользователей.Во-первых, убедитесь, что число (7% от базы пользователей) является максимальным параллелизмом, а не средним.Вам необходимо протестировать пик.

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

Как только вы установили этот базовый уровень, вы можете сделать предварительныеоцените общее количество серверов, которое вам понадобится, и вы сможете построить свой кластер.Я рекомендую следующее тестирование с 2 веб-серверами / серверами приложений.Это должно почти удвоить ваши возможности.Если этого не произойдет, вам нужно определить причину, прежде чем переходить к более крупным тестам.Вероятными кандидатами являются установка балансировки нагрузки или база данных (если один сервер базы данных обслуживает все серверы веб / приложений).Иногда происходит нечто более фундаментальное для архитектуры приложения.

Когда вы убедитесь, что масштабирование от 1 до 2 серверов работает оптимально, вы можете перейти к масштабированию до полного кластера и протестировать максимальную емкость.Будьте готовы отступить, если не видите ожидаемой масштабируемости - проведите тестирование с 3, 4, 5 серверами и т. Д.

Надеюсь, это поможет!Удачи:>

0 голосов
/ 20 января 2011

Эта ссылка: http://support.microsoft.com/kb/231282, содержит ссылки на некоторые инструменты для стресс-тестирования вашего сайта.

Это, очевидно, сложная область, поэтому у вас может быть 2,5 миллиона зарегистрированных пользователей (неужели так много?), Но сколько их одновременно, и какие области веб-сайта они будут использовать.Все эти (и многие другие) будут влиять на планирование загрузки вашей системы.

...