Есть ли способ проверить, как сайт будет работать под нагрузкой


9

Я сделал сайт Asp.net MVC и разместил его у провайдера виртуального хостинга. Поскольку мой веб-сайт содержит в себе очень общую идею, в будущем может появиться число одновременно работающих пользователей.

Итак, я подумал о том, как проверить свой веб-сайт на производительность под нагрузкой. Например, как будет работать сайт, когда 100 или 1000 пользователей одновременно подключены к Интернету и работают на нем. Это также поможет мне понять, хорошо ли написаны мои запросы LINQ или нет.

Ответы:


12

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

Эти виды испытаний только проверить сайт с посетителями точки зрения, для получения конкретной информации необходимо выполнить профилирование приложения локально, и я на самом деле не имею ничего больше , чтобы добавить к предыдущим ответам, я использую Apache JMeter , а также ,

И, наконец, как любой веб-разработчик, заботящийся о производительности, вы должны взглянуть на YSlow :

YSlow анализирует производительность веб-страницы, проверяя все компоненты на странице, включая компоненты, динамически создаваемые с помощью JavaScript. Он измеряет производительность страницы и предлагает предложения по улучшению.

YSlow для Firefox интегрирован в инструмент веб-разработки Firebug для Firefox.

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

Дальнейшее чтение:

на StackOverflow, конечно!


Изучите другие решения, прежде чем платить абонентскую плату loadimpact, конечно. Есть довольно много подобных решений. Я люблю это, но работа заплатила плату не мне :)
Яннис

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

7

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

Однако в этой ситуации я бы начал с отдельного запуска теста на выделенной коробке (это может быть ваш собственный ноутбук); используйте такой инструмент, как пакет нагрузочных тестов Visual Studio или JMeter (который я лично не могу выдержать), и создайте набор тестов, представляющих типичный путь через ваше приложение (вы должны быть в состоянии получить информацию о типичном пути через использование Google Analytics. Если это недоступно, вы можете просто использовать тот, который вы считаете вероятным, но помните, что это не даст как точный базовый уровень). Затем выполните тестирование нарастания, начните с 1 пользователя, затем медленно добавляйте пользователей, пока не достигнете предполагаемой пиковой нагрузки. Это должно показать вам, насколько хорошо работает ваша система в целом (я лично хотел бы пойти немного дальше, чтобы убедиться, что у меня есть запас прочности).

Последнее, что вам нужно сделать, это запустить инструмент профилирования, такой как профилировщик производительности ANTS, во время выполнения теста (имейте в виду, что это добавляет некоторые накладные расходы). Это позволит вам определять длительные запросы и методы, давая вам указатели относительно того, где ваше приложение действительно медленное (один совет: на самом деле это почти никогда не бывает там, где вы думаете).

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


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

3

Вы можете посмотреть на такие инструменты, как JMeter или The Grinder .

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


1

Мне также нравится Loadimpact для стресс-тестирования. Одна вещь, которую я обычно использую для быстрой проверки на своем сайте, - это Apache Bench. Когда я захочу провести несколько финальных тестов, я посмотрю в сторону платного сервиса.

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


0

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


0

Скрипт Autohotkey (AHK) может имитировать пользователя. Пусть работает целый день.

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

Хотя я не знаком с возможностями потоков AHK, имитировать тысячи пользователей может быть сложно. Вы можете быть связаны количеством компьютеров, которые у вас есть.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.