JMeter 在尝试生成 HTML 报告时内存不足
JMeter runs out of memory while trying to generate HTML report
我需要帮助,也许有人遇到过与 JMeter report generation
类似的问题
我有带有 SOAP API 请求的 JMeter 脚本,这些请求正在下采购订单。在订单创建期间没有问题,但是当所有请求都完成并且 JMeter 正在尝试生成报告时,我收到一个错误:
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid8676.hprof ...
Heap dump file created [7011161840 bytes in 93.212 secs]
Uncaught Exception java.lang.OutOfMemoryError: Java heap space in thread Thread[StandardJMeterEngine,5,main]. See log file for details.
我在执行期间使用 JConsole 监视 JMeter,并注意到在测试期间堆通常为 25% 运行,在报告生成期间上升到 100%。
提前致谢
报错明明是JMeter缺少Java Heap space in order to complete the report generation operation, it might be the case you executed a long-running test and your .jtl results file is very big so it doesn't fit into 7GB of heap. It normally indicates that a developer is not too familiar with memory management and cannot come up with a better solution than load everything into memory in one shot instead of doing it in batches/buffers so it might be a good idea to raise an issue in JMeter's Bugzilla
因此,只需通过操纵 -Xmx
参数来增加分配给 JMeter 的 JVM 堆大小,即使您的系统将开始大量使用交换文件,我相信您应该能够接受这一点。
替代选项是使用 JMeter Plugins Command Line Graph Plotting Tool 生成 tables/charts,但是这样您将获得单独的结果,而不是花哨的 HTML 仪表板
当测试的结果文件非常大时,我已经多次遇到这个问题。您需要做的是在生成仪表板报告之前设置最大堆大小。您可以设置最大堆大小的值取决于您 运行 是在 32 位 OS 还是 64 位上,以及 machine/VM 上有多少 RAM 可用。如果生成报告的机器没有足够的可用内存,那么您可以将结果文件复制到另一台有更多内存的机器上。例如,当我在测试虚拟机上遇到这个问题时,我通常只是将结果文件本地复制到我的笔记本电脑上,它有 16GB 和 运行 以下命令:
JVM_ARGS="-Xms3072m -Xmx12g" && export JVM_ARGS && jmeter -g resultsFile.jtl -o outputReport
我需要帮助,也许有人遇到过与 JMeter report generation
我有带有 SOAP API 请求的 JMeter 脚本,这些请求正在下采购订单。在订单创建期间没有问题,但是当所有请求都完成并且 JMeter 正在尝试生成报告时,我收到一个错误:
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid8676.hprof ...
Heap dump file created [7011161840 bytes in 93.212 secs]
Uncaught Exception java.lang.OutOfMemoryError: Java heap space in thread Thread[StandardJMeterEngine,5,main]. See log file for details.
我在执行期间使用 JConsole 监视 JMeter,并注意到在测试期间堆通常为 25% 运行,在报告生成期间上升到 100%。 提前致谢
报错明明是JMeter缺少Java Heap space in order to complete the report generation operation, it might be the case you executed a long-running test and your .jtl results file is very big so it doesn't fit into 7GB of heap. It normally indicates that a developer is not too familiar with memory management and cannot come up with a better solution than load everything into memory in one shot instead of doing it in batches/buffers so it might be a good idea to raise an issue in JMeter's Bugzilla
因此,只需通过操纵 -Xmx
参数来增加分配给 JMeter 的 JVM 堆大小,即使您的系统将开始大量使用交换文件,我相信您应该能够接受这一点。
替代选项是使用 JMeter Plugins Command Line Graph Plotting Tool 生成 tables/charts,但是这样您将获得单独的结果,而不是花哨的 HTML 仪表板
当测试的结果文件非常大时,我已经多次遇到这个问题。您需要做的是在生成仪表板报告之前设置最大堆大小。您可以设置最大堆大小的值取决于您 运行 是在 32 位 OS 还是 64 位上,以及 machine/VM 上有多少 RAM 可用。如果生成报告的机器没有足够的可用内存,那么您可以将结果文件复制到另一台有更多内存的机器上。例如,当我在测试虚拟机上遇到这个问题时,我通常只是将结果文件本地复制到我的笔记本电脑上,它有 16GB 和 运行 以下命令:
JVM_ARGS="-Xms3072m -Xmx12g" && export JVM_ARGS && jmeter -g resultsFile.jtl -o outputReport