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

Фотография

Проблемы с генерацией нагрузки.

генерация нагрузки в RPS

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

#1 forvvard09

forvvard09

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

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


Отправлено 17 апреля 2020 - 01:35

Добрый вечер. Есть некоторый вопрос.  Есть инфраструктура для нагрузочного тестирования. Есть 3 генератора нагрузки - 6 ядер, 20гб оперативной памяти в каждом и одна машина для сбора статистики с этих генераторов. Поступила задача, как всегда - сколько пользователей выдержит наш сервис. Был разработан универсальный сценарий. Для нагрузки решили использовать jp@gc - Throughput Shaping Timer, затем вместо обычной Thread Group решили использовать bzm - Concurrency Thread Group.

Вопрос в следующем для  jp@gc - Throughput Shaping Timer существует формула - RPS * <max response time> / 1000

вот этот max response time откуда берется вот допусти у меня есть тестовый сценарий из 6 запросов я прогоняю тестовый прогон, без нагрузки - получаю данные - http://prntscr.com/s0vtnd и использую это время, правильно ли я делаю?

Расчитав кол-во тредов джеметра я делаю график нагрузки - http://prntscr.com/s0vus9 и запускаю его с одного генератора нагрузки - получаю - http://prntscr.com/s0vv41 получаю нагрузку в рпс 2400 - смотрю на тестируемое приложение - оно чувствует себя довольно комфортно - ошибок практически нет, ресурсы на 30-40% - делаю предположение что проблемы с генераторм нагрузки джеметра и это предел для данного генератора и этого сценария.

Подключаю 2 дополнительных генератора - увеличиваю количество тредов на машине, с которой будет запускаться нагрузка и собираться информация в 3 раза - я так понимаю эти треды он поделит на 3 генератора (условно, если при генерации нагрузки с одного сервера использовалось 500 тредов - рассчитанное по формуле - то сейчас нужно прописать 1500 ). И я ожидаю увидеть увеличение нагрузки в 3 раза - но я вижу приблизительно те же цифры - даже чуть меньше - http://prntscr.com/s0vxj3 , как я понимаю с каждого генератора было сформирована нагрузка около 700 RPS, смотрю на нагрузку на генераторы - все процы загружены на 20%. Приложение так же чувствует себя комфортно - те же 30-40 процентов - ошибок нет - время ответа от приложение немного подрастает - но не критично.

Получается с 3 генераторов я смог сгенерировать ту же нагрузку, что и с одного генератора - 2100-2400 рпс, вчера это число было равное 3500 - сегодня 2400.

Почитал - что лучше использовать плагин bzm - Concurrency Thread Group для генерации - попробовал - результаты идентчины +-

 

Что я могу делать не так? Почему нагрузка с одного генератора такая же как и с 3. Все генераторы находятся  в одной сети.

Заранее спасибо.


  • 0

#2 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 17 апреля 2020 - 07:46

поднимите сначала один генератор, посмотрите какая нагрузка генерируется

 

потом не выключая первый, поднимайте второй, опять проверяйте нагрузку

 

и так далее


  • 0

#3 rajyx

rajyx

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

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Алапаев Александр Александрович

Отправлено 13 мая 2021 - 18:11

Доброго времени суток, подскажите пожалуйста, при генерации нагрузки в 12200 потоков с помощью jmeter, система не даёт создать большее число потоков (запускаю jmeter с ubuntu server). Вылетает такая ошибка: Failed to start thread - pthread_create failed (EAGAIN) for attributes: stacksize: 256k, guardsize: 0k, detached. Пробовал увеличивать лимиты на максимальное ко-во процессов для пользователя, уменьшать размер стека, применять следующие настройки:

ulimit -s  256
ulimit -i  120000
echo 120000 > /proc/sys/kernel/threads-max
echo 600000 > /proc/sys/vm/max_map_count
echo 200000 > /proc/sys/kernel/pid_max 

Но это не помогло.Мне надо создать стабильную нагрузку в 4060 запросов в секунду, для этого я использую обычный Thread group, в котором Transaction controller и перед ним стоит Flow control action с вложенным Costant Througput timer, на котором пропускная способность 0.5 запросов в минуту (потому что под нагрузкой запрос выполняется чуть ниже этого значения). 
Увеличивать пропускную способность нет смысла, потому что тогда интенсивность начинает проседать и зависеть от времени ответа сервиса, так как Jmeter не запускает новую итерацию пока не закончится старая.

Подскажите что я делаю не правильно. Буду рад любым советам 


  • 0


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

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