【问题标题】:Sonar analysis takes long time声纳分析需要很长时间
【发布时间】:2015-07-08 10:47:03
【问题描述】:

我的声纳分析需要很长时间才能完成。最初大约需要 20-30 分钟。后来增加到1小时以上。现在5个月后需要整整5个小时。 有人可以提出原因以及如何纠正。

我使用 sonarqube 4.4 和 postgresql 9.3 db。声纳数据库占用了将近 40G 的空间。

如果您查看下面的日志,您会发现大部分时间都花在了 IndexProjectPostJob 上。

08:53:47.437 INFO  - Executing post-job class org.sonar.plugins.core.issue.notification.SendIssueNotificationsPostJob
08:53:48.687 INFO  - Executing post-job class org.sonar.plugins.core.batch.IndexProjectPostJob
12:56:24.924 INFO  - Executing post-job class org.sonar.plugins.dbcleaner.ProjectPurgePostJob
12:56:26.601 INFO  - -> Keep one snapshot per day between 2015-06-10 and 2015-07-07

【问题讨论】:

    标签: postgresql sonarqube


    【解决方案1】:

    如果您在每次 sonar 分析您的代码时运行大量 Junit/Integration 测试,则可能需要很长时间才能完成。

    如果是这种情况,也许您应该将(部分)测试(例如使用数据库的一次)移动到单独的声纳项目中,您只会偶尔运行一次。并且只运行你的小而真实的单元测试。

    【讨论】:

    • 不,我不使用声纳执行任何 junit 测试。它的纯声纳分析。如果您看到日志,您会注意到执行数据库索引的作业占用了大量时间。
    • 好的,其他问题。你在做哪种声纳分析? sonarqube.org/… 如果您使用分析,您可以尝试其他方法之一
    • 我正在进行分析,因此是数据库索引。预览模式没有问题,因为我没有将任何内容保存到 DB。
    • 那么,为什么每次都要用“analysing”呢?
    • 我会进行预览分析以及我的构建和夜间质量分析。在你看来我该怎么做?顺便说一句,我们还没有讨论问题的解决方案
    【解决方案2】:

    您可能有很多快照。能不能删一些。 您使用哪个版本的 SonarQube?

    问候。

    【讨论】:

    • 我使用 sonarqube 4.4,是的,我确实有很多快照。我使用默认的数据库清理器设置。如果默认设置不适合大型项目,您能否建议我一个可行的数据库清洁器设置?
    • 我有 40 多个项目快照。删了几个,还是没区别。我还需要保留至少 3 周的快照。
    • 不,我没有任何建议,除了: 1. 尽量保持较低的快照数量,例如 2 周后每周 1 个,1 个月后每月 1 个.但我知道这取决于您的质量流程。 2.在DB层面做一些优化。我不知道 Postgress,但是在 Oracle 上,您必须定期重建索引,尤其是在数据库增长很多的情况下。祝你好运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    • 2013-09-07
    • 2020-08-26
    • 2014-10-09
    • 2012-11-26
    相关资源
    最近更新 更多