Java Jmeter的堆内存不足

Java Jmeter的堆内存不足,java,performance,jmeter,Java,Performance,Jmeter,我正试图在多个数据库中运行性能测试,从csv文件中读取信息,但过了一段时间,Jmeter未能通过测试用例,因为它的内存不足 我试图以这种方式增加“java-XX:MaxPermSize=1024m-Xms3072m-Xmx3072m-jarapachejmeter.jar”,但我得到了相同的结果 另外,Jmeter正在创建一个到5个不同数据库的mysql连接。我假设您有一个64位操作系统和JVM以及大量可用的RAM 你猜不到这些事情。最好使用探查器获取一些数据。使用dynaTrace、JProf

我正试图在多个数据库中运行性能测试,从csv文件中读取信息,但过了一段时间,Jmeter未能通过测试用例,因为它的内存不足

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


另外,Jmeter正在创建一个到5个不同数据库的mysql连接。

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

你猜不到这些事情。最好使用探查器获取一些数据。使用dynaTrace、JProfiler之类的工具,或者,如果您有Oracle JVM,使用JVM附带的可视化VM工具


在获得一些数据之前,您无法找出问题所在。也许您需要以不同的方式编写测试,这样您就不会同时在内存中存储太多数据

首先,您是否修改jmeter bat中的命令行?因为根据您的转储,我们应该能够看到您实际使用了多少ram。。 例如 java.lang.OutOfMemoryError:java堆空间转储堆到java_pid999999.hprof。。。创建的堆转储文件[591747609字节为1321.244秒]在本例中,这意味着我使用的jmeter配置了591747609字节的xmx,也就是512mb的ram。。 通过这一点,我们可以了解您的设置是否被应用

如果可以的话,无论如何,发布一些探查器信息,我们会看到。。 但要考虑以下几点: 1) 如果您想了解java应用程序的性能,那么GUI模式下的jmeter是一个真正的瓶颈。。。考虑切换到远程测试。 2) 检查jmeter配置的最佳实践,jmeter中有一些次优设置占用了太多内存,您可能希望将其关闭

给我们一个更新,我们将看看能给我们什么建议。

确保您

  • 禁用所有侦听器,尤其是和
  • 使用CSV作为结果输出格式
  • 避免查询产生大的结果集
  • 仅在需要时和需要时使用后处理器和断言
  • 在64位操作系统上使用最新版本的JMeter,并使用最新版本的64位JDK

  • 如果您仍然遇到OOM错误,您将需要切换到具有更多RAM的机器或考虑。p> 您使用的是IBM还是Oracle?我是一名Java服务工程师。我可以帮你了解更多细节