SonarQube后台任务运行超过4小时

SonarQube后台任务运行超过4小时,sonarqube,sonarqube-ops,sonarqube5.6,Sonarqube,Sonarqube Ops,Sonarqube5.6,我们正在将SonarQube从4.5.X升级到5.6.X,计算引擎是一个新的概念,在纸上是相当闪亮的。但当投入使用时,它的性能并不好!如果你成功了,帮我过去 我选择了一个用SonarQube 4.5.4在4分钟内扫描的测试项目。现在,使用(gradle)扫描仪进行初始扫描需要3分钟。CE后台任务永远运行,在测试项目之外,第一个在183分钟内完成,另一个在263分钟内完成,第三个仍在运行 很明显,我开始挖掘,看到了这个stackoverflow问题——并增加了作为答案引用的内存,但它对我不起作用

我们正在将SonarQube从4.5.X升级到5.6.X,计算引擎是一个新的概念,在纸上是相当闪亮的。但当投入使用时,它的性能并不好!如果你成功了,帮我过去

我选择了一个用SonarQube 4.5.4在4分钟内扫描的测试项目。现在,使用(gradle)扫描仪进行初始扫描需要3分钟。CE后台任务永远运行,在测试项目之外,第一个在183分钟内完成,另一个在263分钟内完成,第三个仍在运行

很明显,我开始挖掘,看到了这个stackoverflow问题——并增加了作为答案引用的内存,但它对我不起作用

sonar.ce.javaOpts=-Xmx4096m -Xms512m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true
sonar.ce.workerCount=5
虽然工作计数为5,但我现在没有运行并行任务。从完成的工作日志中,我可以看到一些令人震惊的时间信息

2018.02.13 16:56:07 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute complexity measures | time=335ms
2018.02.13 16:56:07 INFO  [o.s.s.c.s.ComputationStepExecutor] Load measure computers | time=6ms
2018.02.13 21:18:34 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   Execution time for each component visitor:
2018.02.13 21:18:34 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - LoadComponentUuidsHavingOpenIssuesVisitor | time=2483ms
2018.02.13 21:18:34 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - IntegrateIssuesVisitor | time=15743879ms
2018.02.13 21:18:34 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - CloseIssuesOnRemovedComponentsVisitor | time=0ms
2018.02.13 21:18:34 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - QualityModelMeasuresVisitor | time=143ms
2018.02.13 21:18:34 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - NewQualityModelMeasuresVisitor | time=73ms
2018.02.13 21:18:34 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - LastCommitVisitor | time=4ms
2018.02.13 21:18:34 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - MeasureComputersVisitor | time=25ms
2018.02.13 21:18:34 INFO  [o.s.s.c.s.ComputationStepExecutor] Execute component visitors | time=15746700ms
2018.02.13 21:18:37 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute measure variations | time=3290ms
2018.02.13 21:18:37 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute Quality Gate measures | time=54ms
2018.02.13 21:18:37 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute Quality profile measures | time=25ms
2018.02.13 21:18:38 INFO  [o.s.s.c.s.ComputationStepExecutor] Generate Quality profile events | time=33ms
2018.02.13 21:18:38 INFO  [o.s.s.c.s.ComputationStepExecutor] Generate Quality gate events | time=6ms
执行组件访问者,尤其是
integrateissuevisitor
需要花费大量时间,执行所需的263分钟中有262分钟如何避免这种情况?

我没有看到任何跨项目分析禁用选项,它与此相关吗

其他信息: 我使用oracledb


[Update]划掉了对CE的诅咒。我的错,CE太棒了!现在,一些项目的分析和发布只需3秒钟解决了

正如谷歌集团在讨论SonarQube时指出的那样,这与数据库有关

从, 很明显,计算引擎性能与

  • 分贝
  • 磁盘I/O
  • 网络
  • 中央处理器
我们的内存消耗和CPU使用总是最小的,所以我们马上排除了最后两个。但我们还不知道哪里出了问题,如果任何CE日志在各个方面都是无用的,因为日志级别没有应用于CE日志,那么您只需要信息,没有调试或跟踪级别。但我们还是得到了一个暗示

INFO  [o.s.s.c.s.ExecuteVisitorsStep]   Execution time for each component visitor:
INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - LoadComponentUuidsHavingOpenIssuesVisitor | time=58ms
INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - IntegrateIssuesVisitor | time=41147606ms
INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - CloseIssuesOnRemovedComponentsVisitor | time=1ms
INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - QualityModelMeasuresVisitor | time=206ms
INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - NewQualityModelMeasuresVisitor | time=119ms
INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - LastCommitVisitor | time=6ms
INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - MeasureComputersVisitor | time=29336ms
IntegrateIssuesVisitor花费了大量的时间来执行,日志只提供了那么多信息,为什么部分仍然是个谜。所以我们决定挖掘代码,谢天谢地SonarQube是开源的,但很快DBA团队就给我们打电话,解释为什么我们的查询表现如此糟糕。这让我们很困惑,索引我们分析了Sonar的交易表,现在一切都好了


tl;dr:不断更新您的表统计信息,以便优化始终对您有利。分析表格。

首先,5名员工可能太多,无法胜任您的基础架构。看。第二,6.7.1是当前的LTS。如果你正在迁移,你应该一路跳跃;这两个版本之间有很多增强和改进(包括性能增强!)感谢@G.Ann-SonarSourceTeam的评论,但是工作人员数量就在那里,我甚至没有使用两个线程。我还分配了4gb的堆空间。CPU 99%空闲,11gb的15gb可用RAM是免费的!把这个看作是婴儿步骤,我们计划了67.1,但是只有在成功迁移到5.67之后,如果我能够通过相同的java选项来了解 IntestaTeaseSuffelsTime= 1578879MS,将工时数减少到1,那将是非常好的;时间还没有结束!我只是让长时间运行的扫描在周末完成,它花了13个小时!!!听起来像是你的SonarQube服务器所在的盒子动力不足。计算机引擎的引入将繁重的工作从分析箱转移到了SQ箱。