SonarQube分析失败java.lang.OutOfMemoryError: Java堆空间不足。

4
我正在使用 SonarQube 版本 5.3,使用 Jenkins 版本 1.651 启动 Sonar Scanner。我还在使用 Sonar Java 插件版本为 3.11-build4121。
似乎出现了内存问题。通过我的调试,我发现可能的解决方案是在 Jenkins 中使用 -Xmx 标志来增加最大 Java 堆大小。因此我尝试了以下设置:
-Xss1024k -Xmx4096m -XX:MaxPermSize=256m

但是由于以下错误,一直未能成功。请参考以下内容。
2016.03.03 15:30:52 INFO  [o.s.s.c.t.CeWorkerCallableImpl] Execute task | project=iipaxprod | id=AVM842148nwKD7ip-06E
2016.03.03 15:30:55 INFO  [o.s.s.c.s.ExtractReportStep] Analysis report extracted | compressedSize=49 MB
2016.03.03 15:30:55 INFO  [o.s.s.c.s.ComputationStepExecutor] Extract report | time=2485ms
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep] SonarQube plugins:
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - Java Properties 1.5 (javaProperties)
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - Findbugs 3.3 (findbugs)
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - Java 3.11-build4121 (java)
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - Git 1.1 (scmgit)
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - PMD 2.5 (pmd)
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - Checkstyle 2.4 (checkstyle)
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - SVN 1.2 (scmsvn)
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep] Settings for module: iipaxprod
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.core.id=20160302135558
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.core.startTime=2016-03-02T13:55:58+0100
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.core.version=5.3
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.host.url=http://192.168.40.179:9000/
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.java.source=1.6
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.login=admin
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.password=******
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.permission.template.default=default_template
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.projectBaseDir=/var/lib/jenkins/jobs/iipax-product-Project/workspace
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.projectKey=iipaxprod
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.projectName=iipax-Product
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.projectVersion=1.0
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.qualitygate=1
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.sourceEncoding=ISO-8859-1
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.sources=.
2016.03.03 15:30:55 INFO  [o.s.s.c.s.LogScannerContextStep]   - sonar.working.directory=/var/lib/jenkins/jobs/iipax-product-Project/workspace/.sonar
2016.03.03 15:30:55 INFO  [o.s.s.c.s.ComputationStepExecutor] Log scanner context | time=5ms
2016.03.03 15:30:55 INFO  [o.s.s.c.s.ComputationStepExecutor] Load analysis metadata | time=0ms
2016.03.03 15:30:58 INFO  [o.s.s.c.s.ComputationStepExecutor] Build tree of components | time=2846ms
2016.03.03 15:30:59 INFO  [o.s.s.c.s.ComputationStepExecutor] Validate project | time=79ms
2016.03.03 15:31:00 INFO  [o.s.s.c.s.ComputationStepExecutor] Load debt model | time=1716ms
2016.03.03 15:31:01 INFO  [o.s.s.c.s.ComputationStepExecutor] Load quality profiles | time=291ms
2016.03.03 15:31:01 INFO  [o.s.s.c.s.ComputationStepExecutor] Load Quality gate | time=151ms
2016.03.03 15:31:01 INFO  [o.s.s.c.s.ComputationStepExecutor] Load differential periods | time=35ms
2016.03.03 15:31:01 INFO  [o.s.s.c.s.ComputationStepExecutor] Load inner file and in project duplications | time=311ms
2016.03.03 15:31:01 INFO  [o.s.s.c.d.CrossProjectDuplicationStatusHolderImpl] Cross project duplication is disabled because it's disabled in the analysis report
2016.03.03 15:31:01 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute cross project duplications | time=0ms
2016.03.03 15:31:02 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute size measures | time=431ms
2016.03.03 15:31:18 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute new coverage | time=16647ms
2016.03.03 15:31:18 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute coverage measures | time=47ms
2016.03.03 15:31:19 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute comment measures | time=1000ms
2016.03.03 15:31:21 INFO  [o.s.s.c.s.ComputationStepExecutor] Copy custom measures | time=1997ms
2016.03.03 15:31:22 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute duplication measures | time=915ms
2016.03.03 15:31:25 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute duplication data measures | time=2562ms
2016.03.03 15:31:26 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute language distribution | time=779ms
2016.03.03 15:31:26 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute test measures | time=49ms
2016.03.03 15:31:30 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute complexity measures | time=4833ms
2016.03.03 15:31:30 INFO  [o.s.s.c.s.ComputationStepExecutor] Load measure computers | time=0ms
2016.03.03 15:40:37 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   Execution time for each component visitor:
2016.03.03 15:40:37 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - LoadComponentUuidsHavingOpenIssuesVisitor | time=5327ms
2016.03.03 15:40:37 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - IntegrateIssuesVisitor | time=428288ms
2016.03.03 15:40:37 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - CloseIssuesOnRemovedComponentsVisitor | time=0ms
2016.03.03 15:40:37 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - SqaleMeasuresVisitor | time=3059ms
2016.03.03 15:40:37 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - SqaleNewMeasuresVisitor | time=107507ms
2016.03.03 15:40:37 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - LastCommitVisitor | time=112ms
2016.03.03 15:40:37 INFO  [o.s.s.c.s.ExecuteVisitorsStep]   - MeasureComputersVisitor | time=834ms
2016.03.03 15:40:37 INFO  [o.s.s.c.s.ComputationStepExecutor] Execute component visitors | time=546127ms
2016.03.03 15:46:28 ERROR [o.s.s.c.c.ComputeEngineContainerImpl] Cleanup of container failed
java.lang.OutOfMemoryError: Java heap space
2016.03.03 15:46:28 ERROR [o.s.s.c.t.CeWorkerCallableImpl] Failed to execute task AVM842148nwKD7ip-06E
java.lang.OutOfMemoryError: Java heap space
2016.03.03 15:46:28 ERROR [o.s.s.c.t.CeWorkerCallableImpl] Executed task | project=iipaxprod | id=AVM842148nwKD7ip-06E | time=935556ms

我注意到这篇文章:1,它也遇到了类似的问题,但一旦将堆内存大小设置为4096,问题似乎已经解决了,但这对我来说并没有用。

有什么建议可以帮助我解决这个问题吗?

编辑-1:拼写更正。

整个项目的大小约为760MB,包含100万行代码。

2个回答

4
我相信我找到了导致这个问题的原因 - 我一直在配置错误的参数。我在Jenkins中配置了Sonar Runner中的参数,而问题实际上存在于SonarQube Web服务器中。一旦我在SonarQube服务器的opt/sonar/conf中的sonar.properties文件中将参数编辑为sonar.web.javaOpts=-Xmx1280m,SonarQube服务器就可以分析来自Sonar Runner分析的结果。

1
我邀请您尝试SQ 5.4。
我们已经修复了与计算引擎相关的一堆堆消耗问题。
其中一个问题会导致项目中的行数与额外的堆消耗成线性关系(请参见SONAR-7316)。这可能会对您有所帮助。

升级到SQ 5.4后,Web服务器无法启动,并在sonar.log(位于/opt/sonar/logs中)中收到以下错误: ERROR web[o.s.s.ui.JRubyFacade] Fail to render: http://192.168.40.179:9000.在安装过程中,我可以选择替换或保留已编辑的配置文件,我选择使用新的配置文件。这个问题可能是什么原因引起的? - Tomas Melin
你应该为此打开一个新线程,因为提供的细节太少,我无法帮助你。 - Seb - SonarSource Team
@seb-sonarsource-team 我已经在这里开了一个新的帖子链接 - Tomas Melin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接