Jenkins以非常高的CPU使用率运行

时间:2016-05-19 22:53:23

标签: linux ubuntu jenkins continuous-integration

我最近从Jenkins 1.6升级到2.5。在我这样做之后,我注意到CPU使用率非常高,有时超过300%(只有4个内核,所以我认为它不会超过400%)。我不知道从哪里开始调试这个,but here's a thread dump以及来自top / htop的一些截图

HTOP htop

热门: top

6 个答案:

答案 0 :(得分:15)

事实证明,我的问题是几个工作有数千个旧版本。这在Jenkins 1.6中很好,但它在2.5中是个问题(我想Jenkins可能会在您查看作业概述页面时尝试将所有构建加载到内存中)。为了解决这个问题,我刚从问题作业using this strategy中删除了大部分旧版本,然后重新加载了jenkins。工作就像一个魅力!

我还设置了“discard old builds”插件,仅保留最近的50个版本,以防止再次发生这种情况。

答案 1 :(得分:3)

每当有请求进入时,Jenkins都会产生一些线程来提供请求。在升级Jenkins之后,它可能在当时以高油门调用。在以下情况下,Plz检查Jenkins服务器的CPU和内存使用情况:

  
      
  • Jenkins闲置,服务器上没有其他应用程序正在运行。
  •   
  • 计划构建,服务器上没有其他应用程序正在运行。
  •   

并比较可以帮助您确定Jenkins或与其他应用并行运行jenkins是否真正制造麻烦的行为。

正如@vlp所说,尝试通过JVisualVM监视jenkins应用程序并使用Jstad配置挂钩。请参阅此link以使用Jstad配置JvisualVM。

答案 2 :(得分:1)

2.5似乎是一个开发版本,而1.6是他们的长期支持版本。因此,在使用前沿版本时,您应该期待一些回归似乎是合乎逻辑的。这个问题的赏金证明其他用户也正在经历这个问题。解决方案是报告Jenkins bug跟踪器上的错误。您暂时可以暂时降级到已知的正常版本。

答案 3 :(得分:1)

在Windows 7 Ultimate上安装Jenkins时,我注意到了一些CPU使用异常的原因。

  1. 我最近从v2.138升级到v2.140,并添加了一些其他插件。我开始注意到Jenkins Java可执行文件存在问题,每次作业触发都会占用多达60%的CPU时间。没有一项工作受CPU限制,只是从外部服务器获取数据,因此没有任何意义。只需重新启动Jenkins服务即可解决此问题。我认为升级只是没有完全完成。

  2. 使用默认内存设置运行时,Java Garbage Collection引发错误并占用CPU。这可能是过高的,但是我变得疯狂了,将Jenkins的Java Heap Space从默认的256mb提升到了4gb。为我解决了这个问题。

    请参阅此解决方案的说明: https://stackoverflow.com/a/8122566/4479786

答案 4 :(得分:0)

尝试将以下参数传递给詹金斯:

-Dhudson.util.AtomicFileWriter.DISABLE_FORCED_FLUSH=true

如此处所述:https://issues.jenkins-ci.org/browse/JENKINS-52150

答案 5 :(得分:-2)

我注意到Jenkins Master(v2.202)上的CPU使用率很高,有时超过700%。该问题与Jenkins Java可执行文件占用了我的CPU的700%有关,但是我不确定是什么原因引起的。

这是我的最高命令:

top 对于我的Java选项设置,我具有以下参数:

JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.util.AtomicFileWriter.DISABLE_FORCED_FLUSH=true -Djsse.enableSNIExtension=false -Xmx10240m -Xms5120m"