【问题标题】:Jmeter groovy classes not unloadingJmeter groovy类没有卸载
【发布时间】:2021-09-02 12:59:18
【问题描述】:

我正在使用 JMeter 5.4.1 和 Groovy 以及 openjdk 版本“16”运行 Jmeter 测试。

在这些测试期间,我看到堆内存逐渐增加,直至引发内存不足异常 - 元空间和堆转储。

我增加了元空间内存分配,但需要转到当前内存分配不支持的更高卷。

从 Jconsole 我可以看到加载的类不断增加,直到加载了 100K+ 类。

我使用 -verbose:classes 运行 JMeter,关于加载“脚本”类有数千行,例如:

[从文件加载 Script1:/groovy/script]

[从文件加载 Script2:/groovy/script]

[从文件加载 Script3:/groovy/script]

[...]

[从文件中加载 Script2409:/groovy/script]

我所有的 JSR223 groovy 脚本都经过检查以缓存已编译的脚本。

我计划将不同版本的 JDK 和 Jmeter 结合起来,希望能有所帮助,并从 Groovy 脚本中删除 jmeter 参数,希望能有所帮助,但不确定。

你能推荐一个解决方案吗?

【问题讨论】:

  • “您能推荐一个解决方案吗?”- 您要求的解决方案是否可以减少正在加载的类的数量?
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: class groovy memory-leaks jmeter


【解决方案1】:

尝试使用 best practices 中建议的变量执行 JSR223 脚本

它可以作为变量存储在测试计划中。然后可以使用脚本变量来创建函数调用。例如,假设 Groovy 脚本存储在变量 RANDOM_NAME 中。然后可以将函数调用编码为${__groovy(${RANDOM_NAME})}

【讨论】:

    【解决方案2】:

    唯一直接的解决方案是compiling your Groovy scripts into .jar files 并从Java RequestJUnit Request 采样器调用它们。

    或者你可以考虑developing your own JMeter Plugin

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 2013-04-02
      • 1970-01-01
      • 2017-01-30
      • 2019-04-02
      • 2021-07-10
      相关资源
      最近更新 更多