【发布时间】:2017-01-05 16:32:00
【问题描述】:
我目前正在使用 jenkins 创建一个性能框架并执行 Jenkins 的性能测试。我正在使用https://github.com/jmeter-maven-plugin/jmeter-maven-plugin 这个插件。此性能框架中的单用户健全性测试运行良好,并继续进行了 200 个用户的实际性能测试,并在 2 分钟内收到错误 java.lang.OutOfMemoryError:超出 GC 开销限制 我在 jenkins.xml 中尝试了以下操作
<arguments>-Xrs -Xmx2048m -XX:MaxPermSize=512m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --prefix=/jenkins --webroot="%BASE%\war"</arguments>
但它不起作用,并且还注意到每当我增加内存时,jenkins 服务就会停止并且必须将内存减少到 1Gb,然后服务重新启动。
也增加了 jmeter 和 java 的内存,但没有帮助。 在 .jmx 文件视图结果树中,所有其他侦听器都被禁用,但问题仍然存在。
由于我正在做 POC,所以 jenkins 托管在我的笔记本电脑中,高级规格如下 系统型号:Latitude E7270 处理器:Intel(R) Core(TM) i5-6300U CPU @ 2.40GHZ(4CPU's),~2.5GHZ 内存:8192MB RAM
有什么帮助吗?
【问题讨论】:
-
将内存(PermSize 还是堆?)增加到 2GB 时会出现什么错误?还有这一切运行的机器的规格是什么?
-
由于我正在做 POC,jenkins 托管在我的笔记本电脑中,其高级规格如下 系统型号:Latitude E7270 处理器:Intel(R) Core(TM) i5-6300U CPU @ 2.40GHZ( 4CPU),~2.5GHZ 内存:8192MB RAM 当我将内存增加到 2GB(我认为是唯一的堆)时没有错误,只是 jenkins 服务停止
-
编辑问题以添加该信息并包含有关您更改为将内存增加到 2GB 的 cmd 行 arg 的信息。
-
添加了有关 cmd 行参数的信息。它已经发布在问题中。
-
我试过这个 -Xrs -Xmx2048m -XX:MaxPermSize=512m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --prefix=/jenkins --webroot="%BASE%\war" 但是 Jenkins 服务并看到这个异常 在 VM 初始化期间发生错误 无法为 2097152KB 对象堆保留足够的空间 由于 8gb 的 ram 不可用确定为什么连 2GB 都失败了
标签: java jenkins garbage-collection maven-plugin jmeter-maven-plugin