首页 > 解决方案 > 如何避免 Jmeter 中的 java.lang OutOfMemory 错误?

问题描述

我一直在尝试在 中运行 50 个用户Jmeter,但是一旦用户数量超过 35,我在命令提示符中看到Java.Lang OutOfMemory错误。我的机器有 16GB 的物理内存,尽管堆大小增加到 8GB(8192m) jmeter.bat 文件,我仍然碰巧看到同样的错误。我还禁用了侦听器以减少内存消耗,并使用以下堆命令来增加其大小。

set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=8192m

我还使用了一些替代命令来增加堆大小,它们是:

set HEAP="-Xms2g -Xmx2g -X:MaxMetaspaceSize=512m" && jmeter.bat

HEAP="-Xms512m -Xmx4096m"

但我碰巧看到另一个错误说明

Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
errorlevel=1

任何人都可以帮助我解决这个问题以成功运行 50 个用户的测试吗?

标签: batch-filejmeterheap-memoryjvm-arguments

解决方案


  1. 确保您安装了 64 位 Java,您将无法为 32 位 JVM 分配超过 2 GB 的空间

    在此处输入图像描述

  2. 确保在打错字时使用正确的语法,并且看起来您不知道自己在做什么(设置过高的元空间大小会导致问题而不是修复它们):

    在此处输入图像描述

  3. OutOfMemoryError 异常可以有很多面,不一定与堆不足有关,请阅读堆栈跟踪和最终。hprof 文件更仔细

  4. 确保遵循JMeter 负载测试“内存不足”失败文章的 9 个简单解决方案中的建议


推荐阅读