SonarQube java.lang.OutOfMemoryError:超出了GC开销限制

时间:2016-08-24 03:38:43

标签: java sonarqube devops

我在对项目进行声纳分析时得到OutOfMemoryException。 Jenkins作业显示分析报告已成功生成,但在SonarQube的后台任务期间,它失败并出现以下异常。

2016.08.24 10:55:52 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute comment measures | time=14ms
2016.08.24 10:56:01 INFO  [o.s.s.c.s.ComputationStepExecutor] Copy custom measures | time=9075ms
2016.08.24 10:56:02 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute duplication measures | time=150ms
2016.08.24 10:56:34 ERROR [o.s.s.c.c.ComputeEngineContainerImpl] Cleanup of container failed
java.lang.OutOfMemoryError: GC overhead limit exceeded
2016.08.24 10:56:34 ERROR [o.s.s.c.t.CeWorkerCallableImpl] Failed to execute task AVa6eX7gdswG1hqK_Vvc
java.lang.OutOfMemoryError: Java heap space
2016.08.24 10:56:34 ERROR [o.s.s.c.t.CeWorkerCallableImpl] Executed task | project=iServe | id=AVa6eX7gdswG1hqK_Vvc | time=53577ms

4 个答案:

答案 0 :(得分:0)

嗨我在两个不同的情况下以两种方式解决了这个问题,我发现了这个问题

  1. 案例:使用jenkins时::前段时间我也遇到了这个问题,我的声纳分析在命令行上工作正常,但是jenkins失败了,你可以用-Xms256m -Xmx1024m替换%SONAR_RUNNER_OPTS%来增加sonar-runner bat文件中的堆大小。

  2. 案例:当使用命令行::我在使用cmd行运行声纳分析时也遇到了这个错误,其中cas解决方案是创建更多的模块,它以某种方式工作,我不知道java出了mem错误。

  3. 希望有所帮助:)

答案 1 :(得分:0)

我遇到了类似的问题,并在 JVM选项中添加了-Xmx2048m -XX: MaxPermSize = 1024m,扫描过程也顺利进行。

答案 2 :(得分:0)

我知道这很晚,但可能对某人有所帮助:

尝试增加 MaxPermSize

我在 sonar.properties 文件的 JVM选项(web / ce / Elastic搜索)下有这些配置: -

  

sonar.web.javaOpts = -Xmx8512m -Xms512m -XX:MaxPermSize = 1024m /   sonar.ce.javaOpts = -Xmx8512m -Xms512m -XX:MaxPermSize = 1024m /   sonar.search.javaOpts = -Xmx8512m -Xms512m -XX:MaxPermSize = 1024m

对我而言,它实际上与&#; 1024m'一起使用,只是因为我的项目中有多个模块,只是作为提示我的服务器也需要相同的部署大小。

答案 3 :(得分:0)

我使用docker-compose,此选项非常适合我。

PyType_GenericNew

您可以汇总内存大小。