首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMeter OutOfMemoryError

JMeter OutOfMemoryError
EN

Stack Overflow用户
提问于 2010-02-18 14:34:44
回答 11查看 102.4K关注 0票数 22

我面临下面的OutOfMemor错误,而JMeter停止工作....

代码语言:javascript
复制
java.lang.OutOfMemoryError: Java heap space Dumping heap to
    java_pid4412.hprof ... Heap dump file created [591747609 bytes in
    71.244 secs] Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space Exception in thread
    "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
    Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError:
    Java heap space Exception in thread "AWT-EventQueue-0"
    java.lang.OutOfMemoryError: Java heap space

如何解决呢?

我的系统有非常好的规格,比如16 GB RAM,2个四核处理器,146 GB硬盘。

有谁可以帮我?

EN

回答 11

Stack Overflow用户

发布于 2012-11-23 14:57:01

您的堆转储显示您正在使用512Mo的默认JMeter设置。因此,即使你有16 so的内存,你也不会使用它们。

将jmeter.bat中的默认JVM可选替换为正确的大小:

代码语言:javascript
复制
set HEAP=-server -Xms768m -Xmx768m -Xss128k 

set NEW=-XX:NewSize=1024m -XX:MaxNewSize=1024m

另请参阅:

  • http://wiki.apache.org/jmeter/JMeterFAQ#JMeter_keeps_getting_.22Out_of_Memory.22_errors.__What_can_I_do.3F
  • http://www.ubik-ingenierie.com/blog/jmeter_performance_tuning_tips/
票数 18
EN

Stack Overflow用户

发布于 2010-02-18 14:39:59

您为JVM分配了多少内存?大约512MB的某个地方?

配置为

代码语言:javascript
复制
java -Xms<initial heap size> -Xmx<maximum heap size>
票数 16
EN

Stack Overflow用户

发布于 2016-07-24 00:01:12

要优化OutOfMemoryError,应遵循以下步骤:

  • Increase Java Heap Size:

JMeter是一个与JVM一起运行的Java工具。为了获得最大的性能,我们需要在execution.First期间为JMeter提供最大的资源,我们需要增加堆大小(在JMeter的bin目录中,我们得到jmeter.bat/sh)。

代码语言:javascript
复制
HEAP=-Xms512m –Xmx512m

表示默认分配的堆大小最小为512MB,最大为512MB。按照you own configuration进行配置。还应该记住,操作系统也需要一定数量的内存,因此不应该分配所有的物理RAM。

非图形用户界面Mode:中的

  • Run测试

JMeter是Java 图形用户界面的应用程序。它也有非GUI版本,这是非常资源密集型(CPU/RAM)。如果我们在非图形用户界面模式下运行Jmeter,它将消耗更少的资源,并且我们可以运行更多的线程。

在测试运行期间

  • Disable所有侦听器。它们仅用于调试,并用于设计所需的脚本。

应在负载测试期间禁用侦听器。启用它们会导致额外的开销,这会消耗测试中更重要的元素所需的宝贵资源。

  • Use最新Software:

Java和JMeter应该保持更新。

  • Decide您需要执行Store:

操作的指标

当涉及到存储请求和响应头时,断言结果和响应数据可能会消耗大量内存!因此,明智的做法是,除非绝对必要,否则不要将这些值存储在JMeter上。

  • Tweak JVM:

还可以在JMeter启动脚本中添加或修改以下JVM参数:

1.添加内存分配率:

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

这意味着内存将以此速率增加。

2.-server -通过运行时参数优化将JVM切换到“服务器”模式。在此模式下,JMeter启动较慢,但总体吞吐量较高。

JVM 3.jvm-当使用64位操作系统时,使用这个参数可以显式地告诉在64位模式下运行。

-XX:+UseConcMarkSweepGC -强制使用垃圾收集器。它将降低总体吞吐量,但会大大缩短CPU密集型垃圾收集时间。

5. -XX:+DisableExplicitGC -这可以防止应用程序强制执行昂贵的垃圾回收,并帮助避免意外的暂停。

为了更好和更详细地理解,这个关于9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure的博客是有帮助的。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2286750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档