Size: a a a

QA — Load & Performance

2020 October 21

NM

NoEndOutcry💡🔋🚓 Mikst... in QA — Load & Performance
vars.put("filenamefor",props.get("filenamefor").toString())
источник

NM

NoEndOutcry💡🔋🚓 Mikst... in QA — Load & Performance
те. так
источник

NM

NoEndOutcry💡🔋🚓 Mikst... in QA — Load & Performance
Спасибо!
источник

KY

Kirill Yurkov in QA — Load & Performance
йес
источник

KY

Kirill Yurkov in QA — Load & Performance
если работало с get - то это очень подозрительно
источник

NK

ID:0 in QA — Load & Performance
Всем привет!
Обновил пример gatling-скриптов для демонстрации различных моделей нагрузки.

Открытая модель нагрузки
Сценарий:
io.qaload.gatling.reportExample.simulation.OpenModel_IncrementUsersPerSec
* Gatling Grafana Report: Gatling - open model
* openmodel-incrementuserspersec

Обратите внимание, как при открытой модели нагрузки растет количество одновременно работающих сценариев после точки деградации

Закрытая модель нагрузки
Сценарий:
io.qaload.gatling.reportExample.simulation.CloseModel_IncrementConcurrentUsers + trottle
Который рекомендую использовать вместо открытой модели
* Gatling Grafana Report: Gatling - closed model
* closemodel-incrementconcurrentusers

Обратите внимание на ровный по RPS профиль нагрузки, это trottle. И что после точки деградации количество параллельных сценариев (а следовательно потоков в Gatling) не растёт.

Значит Gatling не упадет по Out Of Memory Error под конец теста. А нагрузка та же самая.

По ссылкам доступны отчёты: Grafana и HTML.

Репозиторий:
https://github.com/polarnik/gatling-report-example
источник

АС

Артем Сидорук... in QA — Load & Performance
Хм.. А хорошая это идея, использовать ConcurentUsers + throttle!
Спасибо. Возьму себе пожалуй))
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
ID:0
Всем привет!
Обновил пример gatling-скриптов для демонстрации различных моделей нагрузки.

Открытая модель нагрузки
Сценарий:
io.qaload.gatling.reportExample.simulation.OpenModel_IncrementUsersPerSec
* Gatling Grafana Report: Gatling - open model
* openmodel-incrementuserspersec

Обратите внимание, как при открытой модели нагрузки растет количество одновременно работающих сценариев после точки деградации

Закрытая модель нагрузки
Сценарий:
io.qaload.gatling.reportExample.simulation.CloseModel_IncrementConcurrentUsers + trottle
Который рекомендую использовать вместо открытой модели
* Gatling Grafana Report: Gatling - closed model
* closemodel-incrementconcurrentusers

Обратите внимание на ровный по RPS профиль нагрузки, это trottle. И что после точки деградации количество параллельных сценариев (а следовательно потоков в Gatling) не растёт.

Значит Gatling не упадет по Out Of Memory Error под конец теста. А нагрузка та же самая.

По ссылкам доступны отчёты: Grafana и HTML.

Репозиторий:
https://github.com/polarnik/gatling-report-example
Отличия такие. При открытой модели нагрузки профиль считается в сценариях в единицу времени, в TPS.

При использовании trottle, профиль задаётся для запросов в сек, это RPS.

Для сценария в примере выше - два запроса на сценарий. Поэтому в trottle все значения в два раза выше, чем такие же ступени для открытой модели
источник

VK

Vitaliy Kudryashov in QA — Load & Performance
ID:0
Всем привет!
Обновил пример gatling-скриптов для демонстрации различных моделей нагрузки.

Открытая модель нагрузки
Сценарий:
io.qaload.gatling.reportExample.simulation.OpenModel_IncrementUsersPerSec
* Gatling Grafana Report: Gatling - open model
* openmodel-incrementuserspersec

Обратите внимание, как при открытой модели нагрузки растет количество одновременно работающих сценариев после точки деградации

Закрытая модель нагрузки
Сценарий:
io.qaload.gatling.reportExample.simulation.CloseModel_IncrementConcurrentUsers + trottle
Который рекомендую использовать вместо открытой модели
* Gatling Grafana Report: Gatling - closed model
* closemodel-incrementconcurrentusers

Обратите внимание на ровный по RPS профиль нагрузки, это trottle. И что после точки деградации количество параллельных сценариев (а следовательно потоков в Gatling) не растёт.

Значит Gatling не упадет по Out Of Memory Error под конец теста. А нагрузка та же самая.

По ссылкам доступны отчёты: Grafana и HTML.

Репозиторий:
https://github.com/polarnik/gatling-report-example
я правильно понял, что ты рекомендуешь использовать закрытую модель даже для систем с открытой моделью? если да, то почему
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Vitaliy Kudryashov
я правильно понял, что ты рекомендуешь использовать закрытую модель даже для систем с открытой моделью? если да, то почему
Чтобы не улететь в Out of memory на генераторе нагрузки. И чтобы не перегружать систему, если цель просто найти точку деградации
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
Вячеслав Смирнов
Чтобы не улететь в Out of memory на генераторе нагрузки. И чтобы не перегружать систему, если цель просто найти точку деградации
Это неверный подход, для каждого типа нужно использовать свою модель
источник

VK

Vitaliy Kudryashov in QA — Load & Performance
Вячеслав Смирнов
Чтобы не улететь в Out of memory на генераторе нагрузки. И чтобы не перегружать систему, если цель просто найти точку деградации
в out of mem улетал так же и при использовании тротлинга, точно сейчас не вспомню, но суть вроде была в том что копилась очередь в бесконечность юзеров(сценариев), они были не активные, а в ожидании
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Ιωάννης Τσεκούρι
Это неверный подход, для каждого типа нужно использовать свою модель
Тип чего, Иоанн?

Для теста на поиск точки деградации тип системы не важен. Нужно поднимать нагрузку, желательно, ступенями и, желательно, не упасть самому и систему не уронить

Поднимать нагрузку можно всеми способами

Для теста стабильности, тоже не нужны миллионы подключений. Мне не были нужны
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
При открытой нагрузке точка деградации быстрее наступит
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
Если закрытой грузить открытую то есть шанс получить бОльшую производительность, что неверно
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
Закрытая нужна там где есть очереди, например кассиры в супермаркете, их всего 3-5 и клиенты будут ждать пока из обслужат
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
А в открытой моделе клиенты ждать друг друга не будут и начнут ломиться чтобы купить билет в кино онлайн например
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Ιωάννης Τσεκούρι
При открытой нагрузке точка деградации быстрее наступит
Тут десяток нюансов

Самый первый можно вопросом выразить:

Если подавать нагрузку без таймеров, но ограниченным сверху количеством одновременно работающих сценариев, то это закрытая модель?
- Да, закрытая

Если подавать нагрузку без таймеров, но ограниченным сверху количеством одновременно работающих сценариев, и запустить 15 параллельных сценариев, то как быстро наступит точка деградации?
- Она может наступить через 10 секунд после начала теста, так как TPS, RPS может быть запредельный. Ведь он не ограничен ничем
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
В рекомендации своей ограничиваю, как TPS, так и RPS. И опыт показывает, что разница в точности поиска точки деградации несущественная.

При работе с RPS (закрытая модель + тротлинг или открытая модель + тротлинг) графики гладкие. И если в сценарии фиксированное количество запросов, нет if, while, ... Других условных конструкции. То способ применим.

Если же в сценарии есть условные конструкции и от прохода к проходу количество запросов в сценарии разное. То способ с RPS для профиля нагрузки не применим. Тогда только TPS.

И TPS можно задать как открытой моделью. Так и закрытой моделью с пейсингом - pace. Разница лишь в том, что во втором случае надо шаг нагрузки выбирать

Если шаг нагрузки оказывается 5 минут, тогда да, требуется запредельное количество паралельно работающих сценариев. Для TPS = 100 в сек, надо будет 100 * 5 * 60 = 30 000, это космическое значение. Тогда открытая модель без шага нагрузки экономичнее и лучше.

Но если есть возможность выбрать закрытую, если не надо 30 000 сразу. А достаточно 1000. То стоит выбрать закрытую.
источник
2020 October 22

VG

Viktor Ganeles in QA — Load & Performance
Kirill Yurkov
галку кэш снять хорошо бы
Зачем её снимать? Как я понял, основное отличие в производительности jsr223 и биншелла - именно в этой галочке. Скрипт не компилится каждый раз и получается в 100500 раз быстрее
источник