繁体   English   中英

詹金斯中的永久代空间问题

[英]PermGen Space issue in Jenkins

我正在构建一个 maven 项目,因为过去 1.5 年的构建工作正常,但现在我遇到了 PermGen 空间错误。

[ERROR] Internal error: java.lang.RuntimeException: org.jfrog.build.extractor.maven.BuildInfoRecorder.sessionEnded() listener has failed: java.io.IOException: Remote call on channel failed: PermGen space -> [Help 1]
[ERROR] org.jfrog.build.extractor.maven.BuildInfoRecorder.sessionEnded() listener has failed:
java.lang.OutOfMemoryError: PermGen space

我尝试了以下选项以解决它:-

1) 在Manage Jenkins 下,然后Configure System 全局属性部分,添加名为 MAVEN_OPTS 的环境变量,其值设置为-Xmx200m -XX:MaxPermSize=512m

2) 在job configuration 下,然后Build ,在MAVEN_OPTS 中,添加以下属性:-

-DXms512m
-DXmx1024m
-DXX:PermSize=512m
-DXX:MaxPermSize=1024m
-DXX:+CMSClassUnloadingEnabled
-DXX:+UseConcMarkSweepGC

仍然发生错误。

注意:-错误不是永久性的,它在几次构建后消失,但再次开始出现,然后在多次重试后再次消失。

谢谢。

也许我错了,但是当 Jenkins 尝试将构建信息发送到 Artifactory(使用后期操作)时,您的内存错误似乎发生了。

您最近是否升级了 Jenkins Artifactory 插件?

您可以尝试禁用“捕获并发布构建信息”选项吗?

在此处输入图片说明

最后一个选项,您能否尝试更新 JENKINS_JAVA_OPTIONS(在 jenkins 服务配置文件中)以增加 MaxPermSize?

## Type: string
## Default:     "-Djava.awt.headless=true"
## ServiceRestart: jenkins
#
# Options to pass to java when running Jenkins.
#
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xms2G -Xmx4G -XX:MaxPermSize=256m"

由于 Maven 项目不是节点上的构建步骤中部署工件,而是在master上部署工件,我怀疑 Permgen 问题可以通过升级 Jenkins 核心、插件或通过增加 Jenkins 启动选项中的 Permgen 最大大小来解决。

附: Java 8 淘汰了 Permgen。

也许我瞎了,你写在某个地方,但是当我遇到类似的问题时,我将 Jenkins 本身的 JRE 版本从 7 升级到 8。当我使用 Jenkins 2.X 和 Java 7 时,问题就开始了。

此致,

最大限度

在 centos6 上通过 rpm 或 yum 安装 jenkins

vim /etc/sysconfig/jenkins
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xmx1024m -XX:MaxPermSize=512m"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM