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

Фотография

Последовательный запуск Thread Group + их процентное соотношение

Thread Group последовательно

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

#1 t0xa

t0xa

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

  • Members
  • Pip
  • 29 сообщений

Отправлено 20 марта 2014 - 13:50

Поиск в ветке форума не дал результата, хотя если упустил - ткните в тему.

 

Суть задачи:

- на руках отчёт о нагрузке сервера с 6-ю наиболее "тяжёлыми" get-ами с их процентным соотношением к общему количеству;

- в свою очередь get-ы в тест-плане разбиты на N-request-ов;

 

2014-03-20.png

Как видно из скрина "основные" get-ы раскиданы по Thread Group-ам. Напротив каждой написанно процентное соотношение от общего количества запросов.

 

Проблемы:

- как выполнять Thread Group-ы последовательно? Sсheduler - не подходит т.к. время выполнения может быть разным

- как зациклить выполнение Thread Group? т.е. при выполнении последней (та что с 6,6% скрипт переходил к перовой с 28,8)

 


  • 0

#2 t0xa

t0xa

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

  • Members
  • Pip
  • 29 сообщений

Отправлено 20 марта 2014 - 13:56

Забыл)

 

Как лучше сопоставить проценты с юзерами (number of threads)? 


  • 0

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

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

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

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

Отправлено 21 марта 2014 - 13:57

Посмотри на чекбокс

Test Plan -> Run Thread Groups consecutively


  • 1

#4 t0xa

t0xa

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

  • Members
  • Pip
  • 29 сообщений

Отправлено 21 марта 2014 - 16:58

Посмотри на чекбокс

Test Plan -> Run Thread Groups consecutively

 

Первый вопрос решён! Спасибо ТимурТорубаров


  • 0

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

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

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

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

Отправлено 29 марта 2014 - 21:04

Забыл)

 

Как лучше сопоставить проценты с юзерами (number of threads)? 

Извиняюсь, как-то этот вопрос выпал из моего внимания.

 

А зачем Вам это?

В JMeter тред проходит свой сценарий полностью сверху вниз. Что Вы в данной модели нагрузки подразумеваете под "сопоставить проценты с юзерами"? Попробую предположить самый ожидаемый в этом месте сценарий: возможно, у Вас есть необходимость добиться конкретного распределения запросов в соответствии с процентами.

 

В таком случае, нужно немного переделать сценарий. Вам необходимо добавить все Ваши запросы в одну thread group'у, сгруппировав If Controller'ами с условием, которое будет определять вероятность отправки каждой группы запросов, а также добавить Random Variable для генерации случайного числа от 1 до 100.

Случайное число от 1 до 100 с вероятностью 100-N/100 будет больше указанного Вами в if controller'e порога.

Простой сценарий с debug sampler'ами, которые дергаются тред группой с определенность вероятностью, я набросал на коленке и добавил в аттач.

Плюс у Вас под рукой beanshell, там всегда можно написать что-то, что, возможно, будет работать более производительнее, чем пачка if Controller'ов. Они медленны. Следите за CPU на Вашем load-генераторе.

 

P.S. по поводу зацикливания выполнения Thread Group - обратите внимание на чекбокс "loop forever" в настройках Thread Group'ы.

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


  • 1

#6 t0xa

t0xa

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

  • Members
  • Pip
  • 29 сообщений

Отправлено 03 апреля 2014 - 09:41

В JMeter тред проходит свой сценарий полностью сверху вниз. Что Вы в данной модели нагрузки подразумеваете под "сопоставить проценты с юзерами"? Попробую предположить самый ожидаемый в этом месте сценарий: возможно, у Вас есть необходимость добиться конкретного распределения запросов в соответствии с процентами.

 

В таком случае, нужно немного переделать сценарий. Вам необходимо добавить все Ваши запросы в одну thread group'у, сгруппировав If Controller'ами с условием, которое будет определять вероятность отправки каждой группы запросов, а также добавить Random Variable для генерации случайного числа от 1 до 100.

Случайное число от 1 до 100 с вероятностью 100-N/100 будет больше указанного Вами в if controller'e порога.

Простой сценарий с debug sampler'ами, которые дергаются тред группой с определенность вероятностью, я набросал на коленке и добавил в аттач.

Плюс у Вас под рукой beanshell, там всегда можно написать что-то, что, возможно, будет работать более производительнее, чем пачка if Controller'ов. Они медленны. Следите за CPU на Вашем load-генераторе.

 

P.S. по поводу зацикливания выполнения Thread Group - обратите внимание на чекбокс "loop forever" в настройках Thread Group'ы.

 

Большое спасибо, вы ответили на мои вопросы.

 

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

Thread_group_28% = 280 запросов

Thread_group_27% = 270 запросов

и т.д.

+ N-ое количество повторений, для достижения необходимого количества запросов.

 

Теперь новые проблемы) Необходимо нагружать сервер 120К запросов в час, при запуске тест выполняется около 20 минут и падает, в логах

...
ERROR - jmeter.config.CSVDataSet: java.io.IOException: Stream closed
INFO  - jmeter.threads.JMeterThread: Stop Thread seen: org.apache.jorphan.util.JMeterStopThreadException: End of file detected
INFO  - jmeter.threads.JMeterThread: Thread finished: Thread_group_name 6-71
INFO  - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test

у меня было подозрение что в подставляемых CSV-файлах не достаточно данных для построения указанного мной количества запросов, но увеличение ни чего не дало, равно как и увеличение выделяемой Jmeter-y памяти.


  • 1

#7 t0xa

t0xa

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

  • Members
  • Pip
  • 29 сообщений

Отправлено 11 апреля 2014 - 08:54

Отвечу сам, проблема в банальном ограничении обращения к файлам *.csv в unix

 

Лечится допиливанием файла:

sudo vi /etc/security/limits.conf

# добавить/изменить строки
user_name       hard     nofile   %Your_value%
user_name       soft     nofile   %Your_value%

Сообщение отредактировал t0xa: 11 апреля 2014 - 13:26

  • 0



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

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