Jmeter内存不足异常,我应该把堆大小改成什么?

q8l4jmvw  于 2022-12-26  发布在  其他
关注(0)|答案(1)|浏览(163)

我尝试用jmeter做一些负载测试,负载大约在10000到15000之间。当我尝试在命令行中运行脚本时,我得到内存不足异常。我读到过你可以在JMeter批处理文件中增加JVM内存,并在JMeter批处理文件中修改堆大小,最多占总内存的80%。
所以我假设有两个文件要编辑。有人能确认我应该编辑哪个文件吗?我在一个12GB RAM的机器上运行jmeter,目前还没有设置任何分布式测试的方法。那么什么是正确的方法来分配更多的内存给jmeter呢?

j1dl9f46

j1dl9f461#

OutOfMemoryError异常有很多面,但只有一个面与堆空间不足有关。如果您认为这是您的情况:你不需要编辑任何文件来改变堆的大小,设置HEAPenvironment变量就足够了
窗口:

set HEAP=-Xms1g -Xmx10g -XX:MaxMetaspaceSize=256m && jmeter.bat

Unix及其衍生产品:

export HEAP=-Xms1g -Xmx10g -XX:MaxMetaspaceSize=256m && ./jmeter.sh

如果您想使更改永久生效-找到以下行并相应地修改它们:

  • 窗口:文件
  • Unix及其衍生产品:jmeter文件的第166行

提供了JMeter 5.5的行号
但是,请注意,堆大小越大,garbage collection需要的时间就越多,而且在此期间,JMeter很可能不会发送任何请求。

相关问题