【问题标题】:JMeter Dashboard Generation Java Heap SpaceJMeter 仪表板生成 Java 堆空间
【发布时间】:2019-03-11 08:43:41
【问题描述】:

我已经能够使用 JMeter 为少量日志数据 (3mb) 创建仪表板。但是,当尝试创建包含大量数据 (35mb) 的仪表板时,jmeter 将抛出 java.lang.OutOfMemoryError: Java Heap Space。

到目前为止,我已经尝试创建一个名为 JVM_ARGS=-Xms1024m -Xmx10240m 的环境变量,但我仍然没有足够的空间。

还有什么我可以尝试创建这些仪表板的吗?或者有没有办法减少写入日志文件的条目数量?

谢谢!

【问题讨论】:

    标签: java jmeter dashboard


    【解决方案1】:

    有两种可能:

    • 选项 1:不考虑您的 JVM 选项。显示 jmeter.log 的第一行或所有内容
    • 选项 2:您已将一些动态参数添加到您的 http 请求中,从而创建了许多不同的(名称)SampleResult

    2018 年 10 月 8 日编辑:

    • 根本原因是选项 2

    【讨论】:

    • 我现在没有工作电脑,但你说得对,我的 http 请求中有一些动态参数。我将尝试删除那些被添加到我的日志中。如果这不起作用,我将发布我的 jmeter 日志的内容。谢谢!
    • 我尝试删除动态参数,现在我可以成功地为更大的数据集创建仪表板。但是,我仍然想在我的仪表板中包含动态数据。有没有办法让创建动态 url 的请求都属于同一个 SampleResult?
    • 我建议您接受这个答案,并在这个明确的背景下提出另一个问题。我会试着回答。谢谢
    【解决方案2】:
    1. 确保您确实创建了环境变量并且它具有预期的值,通过在您将启动 JMeter 的终端窗口中运行以下命令来仔细检查:

      • echo %JVM_ARGS% 适用于 Windows
      • echo $JVM_ARGS 适用于 Linux/Unix/MacOS

        您应该会看到增加的 JVM 堆设置

    2. 确保将jmeter.bat 用于Windows 或jmeter.sh 用于其他操作系统包装脚本

    3. 确保使用64-bit version of JRE,因为32位将无法分配超过3G的堆

    4. 确保您可以使用 10G 堆执行 java 命令

      java -Xms1024m -Xmx10240m -version
      

      您应该会看到您的 Java 版本

    5. 尝试直接运行ApacheJMeter.jar 可执行文件:

      java -Xms1024m -Xmx10240m -jar ApacheJMeter.jar -g result.jtl -o destination_folder
      
    6. 如果没有任何帮助,请注意您可以使用 JMeterPluginsCMD Command Line Tool 生成表格/图表(它不是标准 JMeter 安装的一部分,可以使用 JMeter Plugins Manager 安装)

    【讨论】:

    • 感谢您的深入回答。不幸的是,它仍然会抛出 OutOfMemoryError。我相信这是因为我发出的每个 http 请求都会生成一个唯一的条目,因为 URL 的一部分是动态的。有没有办法让它们合并到同一个条目下?例如:example.com/ example.com/ 这会在我的仪表板中创建 2 个不同的条目,但我希望它们位于同一个条目下。
    • 1.将您的请求放在Transaction Controller 下 2. 勾选Generate Parent Sample 框 3. 将jmeter.save.saveservice.subresults=false 行添加到 user.properties 文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    相关资源
    最近更新 更多