我想知道我可以在jmeter.bat和Java中为我的64位Windows 8操作系统增加堆大小,16GB RAM以避免超出GC开销限制。
另外,jmeter.bat和java中的heapsize可以相同吗?
答案 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测试。
首先,请确保您遵循9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure指南中的建议,以充分利用您的JMeter实例
尝试切换到Concurrent Mark Sweep Garbage Collector。为了使用它,在JMeter启动脚本中添加下一行到ARGS:
-XX:+UseConcMarkSweepGC
-XX:-UseGCOverheadLimit
设置<关闭此行为/ LI>
醇>