Я использую jsr223 sampler в JMeter 3.1 для генерации ключей для данных запроса HTTP. Проблема в том, что мой скрипт использует криптографические алгоритмы, поэтому, когда число потоков увеличивается, увеличивается время продолжительности скрипта (увеличивается пропорционально количеству пользователей). Поэтому я не могу создать более 5 ударов в секунду. В то же время загрузка процессора остается низкой (8 ядер и 32 ГБ ОЗУ). Есть ли у вас идеи, как увеличить количество просмотров/сек?Jmeter. JSR223, Groovy. Не удается создать нагрузку более 5 ударов/сек.
ответ
Я заметил ту же проблему. В моих экспериментах я видел, что JSR223 + Groovy работает медленнее, чем большинство других вариантов реализации. Это сильно повлияло на сбор мусора и накладные расходы процессора из-за активности GC. Когда я переключил JSR223 с Groovy на java, у него все еще было много блокировок, и потоки постоянно фиксировались на beanshell bsh.name.
Наконец, я заменил все тестовые элементы JSR223 необработанными элементами beanshell, такими как предварительный процессор/постпроцессор/утверждения и пробоотборники beanshell. Это легко масштабировалось до нескольких тысяч запросов в секунду, а время было < 1 мсек.
Хотя я видел много статей, рекомендующих JSR223 + Groovy, в моем случае это не сработало. Пожалуйста, переключитесь на элементы beanshell с кодом Java внутри них. Это будет работать.
Пожалуйста, обратитесь моя статья
JMeter Tuning - JSR223 + Groovy Vs JSR223 + Java BeanShell Vs Raw BeanShell
Пробовал использовать beanshell, ту же проблему снова ( – Fundorin
Пожалуйста, вы можете запустить JMeter, используя следующее и опубликовать моментальные снимки GC и потоков. "Java.exe -Djsse.enableSNIExtension = false - XX: + HeapDumpOnOutOfMemoryError -Xms4g -Xmx4g -XX: + UseG1GC -XX: MaxGCPauseMillis = 200 -XX: + CMSClassUnloadingEnabled -Dgroovy.use.classvalue = true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.local.only = false -Dcom.sun.management.jmxremote.port = 9010 -Dcom.sun.management.jmxremote.ssl = false -jar
Вы проверить кэш на jsr223 элемент?
Если нет, это, вероятно, объясняет вашу проблему. JSR223 + groovy с проверкой кеша превосходит Beanshell на важный фактор.
Это да, проблема, вероятно, в вашем коде, но вы можете проверить, сделав 3 ниспадающих дампа с интервалом 5 секунд и посмотреть, что делает JMeter?
обеспечить Также вы следуете передовых методов при тестировании:
1. Обеспечить код. 2. Какие «криптографические алгоритмы» вы используете? – zaph
Я использую гибридную криптосистему. Извините, я не могу предоставить код. Я думаю, что это проблема с jmeter. – Fundorin
Какой криптографический примитив вызывает проблему с производительностью? Если вы не предоставите информацию, ответ невозможен. – zaph