Перейти к содержимому

Фотография

Во время нагрузки jmeter "вводит дополнительные ожидания"


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 andrey.tyutyunov

andrey.tyutyunov

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Тютюнов Андрей Геннадьевич


Отправлено 12 ноября 2012 - 14:42

Доброго времени суток, коллеги!

Появилась не очень приятная проблема, прямо мозг выносит, может кто сталкивался.

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

В самом начале теста (3 группы, 3 потока в каждой группе):
<httpSample t="522" lt="522" ts="1352704597508" s="true" lb="Request1" rc="200" rm="OK" tn="Group1 1-1" dt="text" by="2501" ng="3" na="9"/>
  <httpSample t="171" lt="171" ts="1352704598031" s="true" lb="Request2" rc="200" rm="OK" tn="Group1 1-1" dt="text" by="175" ng="3" na="9"/>
  <httpSample t="177" lt="177" ts="1352704598204" s="true" lb="Request3" rc="200" rm="OK" tn="Group1 1-1" dt="text" by="206" ng="3" na="9"/>
Между Request2 и Request1: 1352704598031-1352704597508=523 ms (как раз время выполнения Request1). Между Request3 и Request2 аналогично.

После того, как нагрузка перевалит за некоторое значение - начинаются странности (3 группы, 54 потока в каждой группе):
<httpSample t="198" lt="198" ts="1352706126267" s="true" lb="Request1" rc="200" rm="OK" tn="Group3 3-49" dt="text" by="2497" ng="54" na="162"/>
  <httpSample t="170" lt="170" ts="1352706126465" s="true" lb="Request2" rc="200" rm="OK" tn="Group3 3-49" dt="text" by="175" ng="54" na="162"/>
  <httpSample t="339" lt="339" ts="1352706129851" s="true" lb="Request3" rc="200" rm="OK" tn="Group3 3-49" dt="text" by="206" ng="54" na="162"/>
Между Request2 и Request1: 1352706126465-1352706126267=198 ms (как раз время выполнения Request1). Между Request3 и Request2: 1352706129851-1352706126465=3386, хотя Request2 выполнялся всего 170 ms.

Может кто сталкивался?
  • 0

#2 fesd

fesd

    Опытный участник

  • Members
  • PipPipPipPip
  • 262 сообщений

Отправлено 13 ноября 2012 - 05:50

Могу предположить, что не хватает мощности железки под генератор нагрузки(JMeter). Возможно тяжелый сценарий тестирования( даже if controller способен сильно повлиять) или просто слабая тачка. Вариантов несколько:
1) Облегчить сценарий - убрать if contollerы и прочие элементы, без которых можно обойтись;
2) Запускать жметр на более мощном железе;
3) Запускать в консольном режиме.

У вас случайно не включен в сценарий какой-нибудь Timer?
  • 1

#3 andrey.tyutyunov

andrey.tyutyunov

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Тютюнов Андрей Геннадьевич


Отправлено 13 ноября 2012 - 07:11

Запускается все в консольном режиме на неплохой linux-vm (16 CPU, 10 GB RAM).

Сценарий достаточно "разухабистый" - много if-include-foreach controllers, xpath extractors-assertions, но во время теста мониторил сервер с JMeter - никаких проблем (ram, cpu, network, i/o) не обнаружил.
  • 0

#4 ТимурТорубаров

ТимурТорубаров

    Активный участник

  • Members
  • PipPip
  • 96 сообщений

Отправлено 13 ноября 2012 - 07:19

Попробуйте убрать if controller'ы и посмотрите осталась ли "планка тормозов" на том же месте или сдвинулась выше.

И традиционно : что в жметр.логе?
Какая версия жметра?
  • 1

#5 andrey.tyutyunov

andrey.tyutyunov

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Тютюнов Андрей Геннадьевич


Отправлено 13 ноября 2012 - 07:49

В логах жиметра ничего необычного не вижу, используемая версия - Version 2.5.1. Наверное, попробую JMeter поновее взять + обрежу сценарий.

Прикрепленные файлы

  • Прикрепленный файл  jmeter.txt   20,62К   5 Количество загрузок:

  • 0

#6 andrey.tyutyunov

andrey.tyutyunov

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Тютюнов Андрей Геннадьевич


Отправлено 19 ноября 2012 - 08:05

небольшое послесловие. Для начала просто обновил Jmeter до 2.8 - без изменений.

в настройках jmeter включил idle time

#jmeter.save.saveservice.idle_time=false
======>>>>>>
jmeter.save.saveservice.idle_time=true

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

Достаточно долго "игрался" с параметрами тестового плана. В результате, найден главный "тормоз" - Module controlleer (в тестовом плане использовался как функция с параметрами, 5 вызовов).

После того, как удалил Module и вместо них подставил непосредственные элементы - тормоза и задержки ушли + в разы меньше ресурсов стал потреблять сам Jmeter.

Happy End :)
  • 2


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных