gpt4 book ai didi

jmeter - 未捕获的异常 java.lang.OutOfMemoryError : "unable to create new native thread" error occurring while running jmeter in non gui mode

转载 作者:行者123 更新时间:2023-12-02 06:46:02 34 4
gpt4 key购买 nike

我的场景,

第1步:我已将线程组设置为1000:线程和500:秒
Step2:配置堆空间:HEAP=-Xms1024m -Xmx1024m
第三步:现在,在非 GUI 模式下运行 jmeter。在这种情况下,我的系统中出现“未捕获的异常java.lang.OutOfMemoryError:无法创建新的 native 线程”错误。

我的系统配置

处理器:Intel® Pentium(R) CPU G2010 @ 2.80GHz × 2
操作系统类型:32位
光盘:252.6GB
内存:3.4 GiB

请给我一个针对这种情况的解决方案。

谢谢,Vairamuthu。

最佳答案

您的计算机没有足够的内存来消耗1000个线程。从错误中可以清楚地看出你的机器无法创建1000个线程。您应该调整您的机器来解决这种情况。

您必须考虑以下几点:

  • JMeter 是一个与 JVM 一起运行的 Java 工具。为了获得最大能力,我们需要在执行过程中向JMeter提供最大的资源。首先,我们需要增加堆大小(在JMeter bin目录中,我们得到jmeter.bat/嘘)

    HEAP=-Xms512m –Xmx512m

这意味着默认分配的堆大小为最小 512MB,最大 512MB。根据您自己的 PC 配置进行配置。请记住,操作系统也需要一定量的内存,因此不要分配所有物理 RAM

  • 然后,添加内存分配率

    NEW=-XX:NewSize=128m -XX:MaxNewSize=512m

这意味着内存将以此速度增加。您应该小心,因为,如果开始时生成的负载非常高,则可能需要增加负载。请记住,如果范围太宽,它将导致 JVM 内的堆空间碎片化。如果是这样,垃圾收集器需要更加努力地进行清理。

  • JMeter 是 Java GUI 应用程序。它还具有非 GUI 版本,该版本非常占用资源(CPU/RAM)。如果我们在非GUI模式下运行Jmeter,它将消耗更少的资源,并且我们可以运行更多的线程。

  • 在测试运行期间禁用所有监听器。它们仅用于调试并使用它们来设计您想要的脚本。

监听器应在负载测试期间禁用。启用它们会导致额外开销,从而消耗测试中更重要元素所需的宝贵资源(更多内存)。

  • 始终尝试使用最新的软件。保持 Java 和 JMeter 更新。

  • 不要忘记,在存储请求和响应 header 时,断言结果和响应数据可能会消耗大量内存!因此,尽量不要将这些值存储在 JMeter 上除非绝对必要

此外,您还需要监控您机器的内存消耗CPU使用情况 是否运行低于 80%。如果这些使用率超过 80%,则认为这些测试与报告一样不可靠。

完成所有这些操作后,如果您无法从计算机生成 1000 个线程,那么您必须尝试使用​​ Distributed Load Testing .

这是 JMeter Distributed Testing Step-by-step 的文档.

为了更好、更详细地理解这两个博客How many users JMeter can support?9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure一定有帮助。

我还发现了这个article对于理解和如何处理它们非常有帮助。

关于jmeter - 未捕获的异常 java.lang.OutOfMemoryError : "unable to create new native thread" error occurring while running jmeter in non gui mode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39912128/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com