Jenkins利用100%的CPU

时间:2017-06-15 22:20:33

标签: jenkins amazon-ec2 jenkins-pipeline

我在m3.medium Server中运行AWS的Jenkins服务器。 我的Jenkins服务器即使在空闲时也使用100%的CPU并崩溃。 我用Google搜索了这些问题,大多数解决方案是从光盘中删除旧的构建和重新加载配置,但没有任何反应。 Jenkins仍在使用100%CPU并崩溃。

在我的服务器中只有20个作业,并且它有Github项目配置为在新的分支或PR被引发时构建。

有没有办法解决这个问题?

5 个答案:

答案 0 :(得分:1)

听起来你可能已经没有堆空间了。如果您没有配置它并且接近限制,则该过程将花费大量CPU周期来执行垃圾收集。以下是如何在Ubuntu上配置它。

How do I give Jenkins more heap space when it's running as a daemon on Ubuntu?

答案 1 :(得分:1)

在创建Windows从站时,我遇到了Amazon EC2插件的类似问题。在我的情况下,这个问题是由于某些守护程序“输入副本:”线程(应该在从属服务器上创建临时目录)引起的,即使它们在从属服务器终止后也没有被杀死。使用监视插件查看Jenkins上的活动线程,并确定CPU时间异常长的线程。确定线程是由插件旋转还是由jenkins应用程序本身旋转(转储线程堆栈或将鼠标悬停在线程上以查看堆栈)。查找是否是应用程序/插件的已知问题,并相应地升级或降级。

如果您在jenkins应用程序页面上找不到可疑线程,请登录服务器并检查cpu峰值是否是由系统上运行的其他守护进程引起的

答案 2 :(得分:1)

我遇到了同样的问题,对我来说奇怪的解决方法是删除旧的工作区文件夹

sudo rm -rf /var/lib/jenkins/workspace/*

CPU立即从100%下降到0%

答案 3 :(得分:0)

我们还发现,在作业运行后,Solaris 10计算机(Jenkins slave)上的CPU使用率很高。线程转储在ProcessTreeKiller代码中显示无限循环。

使用-Dhudson.util.ProcessTree.disable=true启动Jenkins解决了这个问题。

答案 4 :(得分:0)

我遇到了类似的问题。我们的 Jenkins 开始消耗接近 100% 的 CPU。这是 AWS EC2 实例上的仅主设置。我能够毫无问题地通过 SSH 连接到机器。通过 top 我看到高 CPU 消耗是由 jenkins 进程引起的。 在 sudo service jenkins restart 后,CPU 使用率回落至基本为 0%。

只有在我尝试在 UI 上打开特定作业后,CPU 才再次达到 100%。 我尝试删除整个 /var/lib/jenkins/workspace 文件夹,但 id 没有帮助。

最终的工作是从终端删除作业本身并从用户界面重新创建它。 我知道这不是真正的解决方案,但可能会对某人有所帮助。