Http веб-сервис нагрузочный тест - PullRequest
0 голосов
/ 26 ноября 2008

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

Этот процесс, кажется, работает нормально до 90 симулированных пользователей. Однако после того, как я попробую 100 симулированных пользователей, программы зависают после примерно 6 обработанных запросов. Кажется, они ничего не делают. Моделируемые клиенты зависают в ожидании ответов, а веб-служба не получает запросы. Для восстановления требуется перезапуск сервера.

Что здесь происходит? Существует ли ограничение на количество подключений к серверу? Должен ли я попытаться «увеличить» нагрузку (сейчас я просто запускаю их так быстро, как могу)?

Сервер, на котором я использую сервер приложений Java Caps 5.1.3, и библиотека, которую я использую для запросов, - HttpUnit 1.6.2.


Контрольный вопрос В чем выгода времени нарастания? Почему я не могу просто перенести всю нагрузку на сервер в начале теста?

Ответы [ 3 ]

2 голосов
/ 26 ноября 2008

Ответ на дополнительный вопрос

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

Параметры, которые играют наиболее важную роль в этом:

  • Нарастание
  • Подумайте время
  • Чередование ч / б итераций
  • Микс транзакций
  • Нет. одновременных пользователей
2 голосов
/ 26 ноября 2008

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

1. Используйте Ramp-up

Используйте приличное увеличение, скажем, по крайней мере, 1 пользователь / 2 секунды или около того. Если использование Ramp-up решает вашу проблему, то это определенно проблема количества подключений.

2. Обзор кода

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

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


Также проверьте эти параметры на вашем веб-сервере, настройте их и протестируйте

  • MaxThreads
  • MaxProcesses
  • MaxSessionCount

Ответ на дополнительный вопрос

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

Параметры, которые играют наиболее важную роль в этом:

  • Нарастание
  • Подумайте время
  • Чередование ч / б итераций
  • Микс транзакций
  • Нет. одновременных пользователей
1 голос
/ 26 ноября 2008

Я думаю, вам следует попробовать JMeter для нагрузочного тестирования. У этого есть все вещи наращивания. Эта презентация PPT сравнивает два, так что вы можете увидеть, что подходит вам лучше.

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