Jmeter超出堆内存

时间:2015-04-28 13:02:15

标签: java performance jmeter

我正在尝试在多个数据库中运行性能测试,从csv文件中读取信息,但过了一段时间Jmeter在测试用例中失败了,因为它没有内存。

我试图以这种方式增加“java -XX:MaxPermSize = 1024m -Xms3072m -Xmx3072m -jar Apache-JMeter.jar”,但我的结果相同。

此外,Jmeter正在创建与5个不同数据库的mysql连接。

3 个答案:

答案 0 :(得分:0)

我假设您有64位操作系统和JVM以及大量可用的RAM。

你无法猜测这些事情。最好使用分析器获取一些数据。使用类似dynaTrace,JProfiler的东西,或者,如果你有Oracle JVM,可以使用JVM附带的Visual VM工具。

在获得某些数据之前,您无法弄清楚问题所在。也许你需要以不同的方式编写测试,这样你就不会在内存中同时拥有如此多的数据。

答案 1 :(得分:0)

首先,您是否正确修改jmeter bat中的命令行?因为基于你的转储,我们应该能够看到你实际使用了多少ram .. 例如 java.lang.OutOfMemoryError:Java堆空间将堆转储到java_pid999999.hprof ...创建堆转储文件[591747609字节在1321.244秒]在这种情况下,这意味着我使用配置了xmx为591747609字节又名为512mb的jmeter内存.. 通过这个我们可以理解您的设置是否被应用..

如果那很好,无论如何发布一些个人资料信息,我们会看到.. 但请考虑以下几点: 1)guimode中的jmeter是一个真正的瓶颈,如果你想看看你的java应用程序的性能...考虑切换到远程测试。 2)检查jmeter配置的最佳实践,jmeter中有一些次优设置会占用太多内存,你可能想把它们关掉......

给我们一个更新,我们会看到可以给出什么建议。

答案 2 :(得分:0)

确保你

  1. Run JMeter in non-GUI mode
  2. 禁用所有侦听器,尤其是View Results TreeView Results in Table
  3. 使用CSV作为结果输出格式
  4. 避免查询产生大型结果集
  5. 仅在需要时使用后处理器和断言
  6. 在64位操作系统上使用最新版本的JMeter并使用最新版本的64位JDK
  7. 如果您仍然遇到OOM错误,则需要切换到具有更多RAM的计算机或考虑distributed testing

相关问题