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

时间:2018-02-16 14:59:51

标签: sonarqube sonarqube-ops sonarqube5.6

我们正在将我们的SonarQube从4.5.X升级到5.6.X,计算引擎是一个新概念,而且在纸上非常精致。 但是当投入工作时,它表现不佳!如果你做到了,请帮助我通过

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

显然我正在挖掘并看到这个stackoverflow问题 - Sonarqube background tasks running forever并增加了内存作为答案引用,但它不适合我。

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

执行组件访问者,特别是IntegrateIssuesVisitor需要很多时间,执行所需的总时间263分钟中有262分钟。 如何避免这种情况?

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

其他信息: 我使用Oracle DB

[更新]在CE上交叉诅咒。我很糟糕,CE太棒了!现在一些项目在3秒内进行分析和发布!!

1 个答案:

答案 0 :(得分:1)

<强>解决!

与SonarQube谷歌集团的讨论指出,它与数据库有关。

来自https://docs.sonarqube.org/display/PLUG/Managing+Compute+Engine+Performance, 显然,计算引擎的性能与

相关联
  • DB
  • 磁盘I / O
  • 网络
  • CPU

我们的内存消耗和CPU使用量总是很小,所以我们排除了最后两个。但是我们还不知道出了什么问题,如果CE日志在各方面都没用,因为日志级别没有应用到CE日志,那么你只有INFO没有DEBUG或TRACE级别。我们还是暗示了一下,

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:保持您的表统计信息更新,以便优化始终对您有利。分析表。