Jmeter - невозможно запустить 1000 одновременных пользователей в секунду - PullRequest
0 голосов
/ 28 июня 2019

enter image description here Я пытался запустить тест производительности с использованием JMeter для 10000 пользователей с параллелизмом 1000 пользователей в секунду, и проблема в том, что я никогда не смог достичь своей пропускной способности 1000 пользователей намой сервер, который развернут в Azure.Я хотел знать, в чем дело, что я делаю это неправильно, и enter image description here любая помощь высоко ценится Спасибо?

Мои определяемые пользователем вариабельные значения:

users   ${__P(USERS,10)}
seconds ${__P(SECONDS,3600)}
scale   ${__P(SCALE,2)}
env ${__P(ENV,preprod)}
wait    false

jmeter -n -t ./src/test/branchHub/agentAuthentication.jmx -JUSERS=1000 -JSECONDS=5 -JENV=preprod -JSCALE=0.2 -JLOOPS=3 -JPRODUCTS=bill -JCERTINI=1 -Djavax.net.ssl.keyStore=./src/main/resources/certificates/preprodStore.jks -Djavax.net.ssl.keyStorePassword=performance -Jhttps.use.cached.ssl.context=true -q ./src/test/user.properties -l logs/summary/394output.jtl -e -o logs/reports/394

Это журнал консоли

16: 14: 10 Создание сумматора 16:14: 10 Создание дерева успешно с использованием ./src/test/branchHub/agentAuthentication.jmx 16:14:10 Запуск теста @ Пт, 28 июня 15:14:10 UTC 2019 (1561734850233) 16:14:10 Ожидание возможного завершения работы /Сообщение StopTestNow / Heapdump на порту 4445 16:14:32 сводка + 17 в 00:00:20 = 0,8 / с Сред: 1330 Мин: 77 Макс: 2174 Ошибка: 1 (5,88%) Актив: 7 Начат: 20 Завершено: 13Сводка 16:15:05 + 29 в 00:00:30 = 1,0 / с. Сред: 1596 Мин.: 1443 Макс .: 2868 Ошибка: 0 (0,00%) Активен: 7 Начат: 49 Закончен: 42 16:15:05 Сводка =46 в 00:00:50 = 0,9 / с. Ср .: 1498 Мин. 77: Макс. 2868 Ошибка: 1 (2,17%) 16:15:37 Сумма + 30 в 00:00:30 = 1,0 / с. Ср .: 1674 Мин .:1252

Ответы [ 2 ]

2 голосов
/ 01 июля 2019

Глядя на вывод Active: 7 сумматора , у вас не более 7 активных пользователей.

Учитывая, что у вас есть только 2 Samplers и только 3 цикла, определенных в Thread Group Я ожидаю, что вы просто не достигнете желаемого параллелизма, поскольку потоки завершают запросы в ~ 3 секунд и быть выключенным, в то время как другие еще не запущены.

Попробуйте установить для параметра Loop Count значение -1 или установите флажок «Навсегда» - так вы сможете достичь желаемого параллелизма. Проверьте Результаты теста JMeter: почему фактическое число пользователей меньше ожидаемого для получения более подробной информации.

Также обязательно следуйте JMeter Best Practices , поскольку в этом случае настройка JMeter по умолчанию не подходит для создания 10000 одновременно работающих пользователей, поэтому вам необходимо настроить ее для максимальной производительности. Если настройка не поможет - вам придется перейти на Distributed Testing .

0 голосов
/ 01 июля 2019

Вы создали группу тем с 1000 нитями. Если ваш экземпляр Azure не имеет 1000 виртуальных ЦП, это приведет к чрезмерному переключению контекста , и JVM будет тратить больше времени на переключение между потоками вместо выполнения работы.

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

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