【问题标题】:Increasing the ThreadStackSize to solve "jmeter.control.GenericController: StackOverflowError detected" error增加 ThreadStackSize 以解决“jmeter.control.GenericController: StackOverflowError detected”错误
【发布时间】:2012-07-14 12:16:45
【问题描述】:
我在运行测试时收到此错误:“jmeter.control.GenericController: StackOverflowError detected”。我无法理解为什么会出现此错误。
我在 JMeter 的论坛上阅读了一个类似的问题,有人建议将 ThreadStackSize 增加到 4096。我正在 Jmeter 的 GUI 模式下运行测试。我应该在哪里更改 ThreadStackSize? Jmeter 的 /bin 目录中是否有一些文件可以更改此属性?
【问题讨论】:
标签:
jmeter
load-testing
performance-testing
【解决方案1】:
查看您的 JMETER_HOME/bin 目录,找到 jmeter 文件(unix shell - 如果您使用任何 unix/linux)或 jmeter.bat(windows bat 文件 - 如果您使用的是 windows 操作系统)。
在这两个中,您都可以找到如下字符串:
HEAP="-Xms512m -Xmx512m"
NEW="-XX:NewSize=128m -XX:MaxNewSize=128m"
TENURING="-XX:MaxTenuringThreshold=2"
RMIGC="-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000"
PERM="-XX:PermSize=64m -XX:MaxPermSize=128m"
DUMP="-XX:+HeapDumpOnOutOfMemoryError"
SERVER="-server"
ARGS="$SERVER $DUMP $HEAP $NEW $SURVIVOR $TENURING $EVACUATION $RMIGC $PERM"
java $ARGS $JVM_ARGS -jar dirname $0/ApacheJMeter.jar "$@"
定义 jmeter 的 JVM 参数的值。
只需将 -XX:ThreadStackSize=4096 添加到任何这些变量中,例如
ARGS="$SERVER $DUMP $HEAP $NEW $SURVIVOR $TENURING $EVACUATION $RMIGC $PERM -XX:ThreadStackSize=4096"
java $ARGS $JVM_ARGS -jar dirname $0/ApacheJMeter.jar "$@"
甚至
java $ARGS $JVM_ARGS -XX:ThreadStackSize=4096 -jar dirname $0/ApacheJMeter.jar "$@"
并重新启动您的 jmeter 实例。