Jmeter。 JSR223,Groovy。生成的负载不能超过 5 hits/sec
Jmeter. JSR223,Groovy. Can't generate load more than 5 hits/sec
我在 JMeter 3.1 中使用 jsr223 采样器为 HTTP 请求数据生成密钥。
问题是我的脚本使用加密算法,因此,当线程数量增加时,脚本持续时间也会增加(它与用户数量成比例增加)。所以我不能生成超过 5 hits/sec。同时 CPU 利用率保持较低水平(8 核和 32GB RAM)。
您有什么想法可以增加 hits/sec 吗?
我观察到同样的问题。在我的实验中,我发现 JSR223 + Groovy 的执行速度比大多数其他实现选项慢。由于 GC activity,它对垃圾收集和 CPU 开销有很大影响。当我将 JSR223 从 Groovy 切换到 java 时,它仍然有很多锁定并且线程不断地在 beanshell bsh.name.
上被锁定
最后,我将所有 JSR223 测试元素替换为原始 beanshell 元素,例如 beanshell pre-processor/ postprocessor / assertions 和 samplers。这很容易扩展到每秒数千个请求,并且花费的时间 < 1 毫秒。
虽然我看过很多推荐 JSR223 + Groovy 的文章,但它对我来说不起作用。请切换到其中包含 java 代码的 beanshell 元素。它会起作用。
请参考我的文章
JMeter Tuning - JSR223 + Groovy Vs JSR223 + Java BeanShell Vs Raw BeanShell
您是否检查了 jsr223 元素上的缓存?
如果不是,那可能可以解释您的问题。 JSR223 +groovy 缓存检查优于 Beanshell 一个重要因素。
是的,问题可能出在您的代码中,但您可以通过每隔 5 秒创建 3 个线程转储来检查并查看 JMeter 正在做什么?
同时确保您在测试时关注 best-practices:
我在 JMeter 3.1 中使用 jsr223 采样器为 HTTP 请求数据生成密钥。 问题是我的脚本使用加密算法,因此,当线程数量增加时,脚本持续时间也会增加(它与用户数量成比例增加)。所以我不能生成超过 5 hits/sec。同时 CPU 利用率保持较低水平(8 核和 32GB RAM)。 您有什么想法可以增加 hits/sec 吗?
我观察到同样的问题。在我的实验中,我发现 JSR223 + Groovy 的执行速度比大多数其他实现选项慢。由于 GC activity,它对垃圾收集和 CPU 开销有很大影响。当我将 JSR223 从 Groovy 切换到 java 时,它仍然有很多锁定并且线程不断地在 beanshell bsh.name.
上被锁定最后,我将所有 JSR223 测试元素替换为原始 beanshell 元素,例如 beanshell pre-processor/ postprocessor / assertions 和 samplers。这很容易扩展到每秒数千个请求,并且花费的时间 < 1 毫秒。
虽然我看过很多推荐 JSR223 + Groovy 的文章,但它对我来说不起作用。请切换到其中包含 java 代码的 beanshell 元素。它会起作用。
请参考我的文章
JMeter Tuning - JSR223 + Groovy Vs JSR223 + Java BeanShell Vs Raw BeanShell
您是否检查了 jsr223 元素上的缓存?
如果不是,那可能可以解释您的问题。 JSR223 +groovy 缓存检查优于 Beanshell 一个重要因素。
是的,问题可能出在您的代码中,但您可以通过每隔 5 秒创建 3 个线程转储来检查并查看 JMeter 正在做什么?
同时确保您在测试时关注 best-practices: