Назад | Перейти на главную страницу

Нагрузочный тест веб-сервера

Есть ли способ имитировать около 1000 посетителей, обращающихся к нашему серверу? Мы полностью переписали и реструктурировали приложение. У нас был очень оптимизированный сервер Tomcat, и мы переходим на внутренний сервер Glassfish с интерфейсом Apache.

Сейчас мы находимся на стадии «бета-тестирования», но лишь некоторые из наших пользователей активно ее используют. У нас 30-40 тысяч пользователей в день (возможно, максимум 1000 в любой момент времени). Когда мы работаем на полную мощность с новой настройкой, мы не хотим, чтобы она давала сбой или перегружалась из-за определенных узких мест.

В принципе, есть ли какие-нибудь инструменты тестирования, которые мы можем использовать для имитации определенного количества обращений к определенным URL-адресам?

Если вы уже используете AWS, это довольно удобное решение:

пчелы с автоматами

http://blog.apps.chicagotribune.com/2010/07/08/bees-with-machine-guns/

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

Пчелы с автоматами - это сценарий ткани, который я собрал для агрессивного нагрузочного тестирования наших сайтов. Он предоставляет методы для раскрутки армии экземпляров EC2 (пчел), нападения на целевой сервер с настраиваемым объемом трафика, а затем откручивания этих экземпляров обратно.

Начать с ab.

А также есть httperf.

Наконец, взгляните на jmeter.

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

Что я испытал, так это то, что при моделировании «реальных» пользователей веб-службы используйте для этого «настоящие» инструменты. Такие как Селен, Ватир или Каркас робота.

Зачем? Проще говоря: эти инструменты будут моделировать актуальные браузеры с участием все включено, а не просто несколько JMeter GET / POST-запросов к вашему серверу. Я также большой поклонник тестов запросов JMeter'ish, но вы должны знать пределы. JMeter великолепен, когда вы уже обнаружили некоторые узкие места. Как я понял, вы еще не уверены, что они есть.

JMeter не настоящий браузер, как сказано в документации jmeter:

JMeter - это не браузер

JMeter - это не браузер. Что касается веб-сервисов и удаленных сервисов, JMeter выглядит как браузер (а точнее, как несколько браузеров); однако JMeter не выполняет все действия, поддерживаемые браузерами. В частности, JMeter не выполняет Javascript, найденный на страницах HTML. Он также не отображает HTML-страницы, как это делает браузер (можно просмотреть ответ как HTML и т. Д., Но время не включено ни в какие образцы, и одновременно просматривается только один образец в одном потоке). (источник: http://jmeter.apache.org)

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

Просто говорю.