JMETER:ERROR-JMETER.JMETER:Uncaught异常:java.lang.OutOfMemoryError:超出GC开销限制
我正在AWS ubuntu机器的分布式环境中运行6450个用户测试 当测试达到峰值负载时,我得到以下错误: 错误-jmeter.jmeter:未捕获异常:java.lang.OutOfMemoryError:超出GC开销限制 我在JMeter.sh中为堆大小分配了20GB 但是当我运行JMETER:ERROR-JMETER.JMETER:Uncaught异常:java.lang.OutOfMemoryError:超出GC开销限制,jmeter,performance-testing,Jmeter,Performance Testing,我正在AWS ubuntu机器的分布式环境中运行6450个用户测试 当测试达到峰值负载时,我得到以下错误: 错误-jmeter.jmeter:未捕获异常:java.lang.OutOfMemoryError:超出GC开销限制 我在JMeter.sh中为堆大小分配了20GB 但是当我运行ps-eaf | grep java命令时,它会给出以下响应 root 11493 11456 56 15:47 pts/9 00:00:03 java -server - XX:+HeapDum
ps-eaf | grep java
命令时,它会给出以下响应
root 11493 11456 56 15:47 pts/9 00:00:03 java -server -
XX:+HeapDumpOnOutOfMemoryError -Xms512m -Xmx512m -
XX:MaxTenuringThreshold=2 -XX:PermSize=64m -XX:MaxPermSize=128m -
XX:+CMSClassUnloadingEnabled -jar ./ApacheJMeter.jar**
我不知道我现在要做什么更改。在jmeter文件中进行更改而不是在jmeter.sh中进行更改,因为您可以看到ps没有应用它 对于此类堆,您可能还需要添加: -XX:-使用GCOverdeLimit 并切换到G1垃圾收集器算法 并检查您是否尊重这些建议:
ps-eaf | grep java
显示了这一点:
XX:+HEAPDUMPONAUTOFMEMORYERROR-Xms512m-Xmx512m
那就是内存仍然很低。所以要么您更改了jmeter.sh
,但使用了其他shell脚本来实际启动jmeter,要么您没有以有效的方式更改它,所以jmeter使用默认值
但最重要的是,我真的怀疑你能在一台机器上运行6450个用户,除非你的脚本很轻。未配置的机器通常可以处理200-400个,配置良好的机器可能最多可以处理2000个。您需要修改
jmeter
文件中的行,而不是jmeter.sh
文件中的行。找到HEAP=“-Xms512m-Xmx512m”
行并相应地更新Xmx
值
还要确保使用JMeter
文件启动JMeter
若您的环境显式依赖于jmeter.sh
文件,那个么您应该以稍微不同的方式修改堆大小,如:
export JVM_ARGS="-Xms512m -Xmx20480m" && ./jmeter.sh
或者将相关行添加到jmeter.sh
文件中
有关调优JMeter的全面信息,请参阅和文章是否尝试在GUI中运行此测试?还有,谢谢Kiril,我正在3台机器上运行测试。谢谢,现在我在JMeter文件中更改了,它显示正确。您应该接受answer和upvote,以便用户可以信任answer。谢谢
export JVM_ARGS="-Xms512m -Xmx20480m" && ./jmeter.sh