JMeter:jmeter.bat和java中的heapsize是一样的吗?

时间:2016-08-03 05:12:30

标签: java garbage-collection request jmeter heap-memory

我想知道我可以在jmeter.bat和Java中为我的64位Windows 8操作系统增加堆大小,16GB RAM以避免超出GC开销限制。

另外,jmeter.bat和java中的heapsize可以相同吗?

1 个答案:

答案 0 :(得分:2)

根据Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning文章的过多的GC时间和OutOfMemoryError 章节

  

如果在垃圾收集中花费了太多时间,并发收集器将抛出OutOfMemoryError:如果在垃圾收集中花费了超过98%的总时间并且恢复了不到2%的堆,则OutOfMemoryError将是抛出。此功能旨在防止应用程序长时间运行,同时由于堆太小而很少或没有进度。如有必要,可以通过在命令行中添加选项-XX:-UseGCOverheadLimit来禁用此功能。

     

该策略与并行收集器中的策略相同,不同之处在于执行并发收集所花费的时间不计入98%的时间限制。换句话说,只有在应用程序停止时执行的集合才会计入过多的GC时间。此类集合通常是由于并发模式失败或显式收集请求(例如,对System.gc()的调用)。

它通常表示您的Java应用程序存在一些问题,在您的情况下 - 使用JMeter测试。

  1. 首先,请确保您遵循9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure指南中的建议,以充分利用您的JMeter实例

  2. 尝试切换到Concurrent Mark Sweep Garbage Collector。为了使用它,在JMeter启动脚本中添加下一行到ARGS:

    -XX:+UseConcMarkSweepGC
    
  3. 如果它没有帮助,并且您完全确定您的JMeter脚本和JVM参数正常,则可以通过上述-XX:-UseGCOverheadLimit设置<关闭此行为/ LI>