我读过您需要更改 jmeter.bat 文件中的堆大小(我使用的是 Windows)以增加内存,以便能够测试大约 500 个线程或更多。这是默认值:
if not defined HEAP (
rem See the unix startup file for the rationale of the following parameters,
rem including some tuning recommendations
set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
)
我改变了set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
it to:
set HEAP=-Xms2g -Xmx8g -XX:MaxMetaspaceSize=512m
但是当我在 GUI 模式下打开 Jmeter 时,命令行窗口中会出现一条消息
Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaSpaceSize=256m" in the jmeter batch file
那么这是否意味着批处理文件中的更改不起作用?或者在非 GUI 模式下运行时它确实有效?我是否错过了需要更改的内容或什么?提前致谢。
- 你不需要增加堆,除非你面临java.lang.OutOfMemoryError: Java heap space error https://plumbr.io/outofmemoryerror/java-heap-space或检测到异常高GC https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html活动
-
该消息基本上是一种建议形式,即使您有几 TB 的堆空间,您也会看到它简单地硬编码 https://github.com/apache/jmeter/blob/v5_0/src/core/org/apache/jmeter/JMeter.java#L364并且将在 GUI 启动期间始终显示。如果您想查看所有 Java 参数,包括堆空间设置,您可以使用JSR223采样器 http://jmeter.apache.org/usermanual/component_reference.html#JSR223_Sampler以及以下内容Groovy https://www.blazemeter.com/blog/groovy-new-black code:
java.lang.management.ManagementFactory.getRuntimeMXBean().getInputArguments().each {
log.info("Effective JVM argument: " + "$it")
}
通过这种方式,您可以测试更改是否已应用:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)