如何避免“超出GC开销限制”?

时间:2017-11-08 09:13:43

标签: jenkins jvm sonarqube

我们的声纳构建环境详情如下:

  • SonarQube服务器版本 - 5.6.7(64位)。
  • 声纳客户端构建操作系统 - Ubuntu-14.04(LTS - 64位)。
  • 声纳构建机器总RAM:16 GB。
  • 声纳扫描仪 - 版本 - 3.0.3.778。
  • 声纳-CXX-插件-0.9.7.jar
  • 源代码语言:C ++
  • 客户端计算机Java版本:1.8
  • 源代码大小:62-GB。

问题:

通过Jenkins声纳扫描仪成功完成(记录如下)。

Jenkins Sonar-Scanner构建日志:

12:24:14 INFO: CPD calculation finished
12:26:35 INFO: Analysis report generated in 136049ms, dir size=1 GB
12:49:25 INFO: Analysis reports compressed in 1369236ms, zip size=385 MB
12:49:43 INFO: Analysis report uploaded in 18811ms
12:49:43 INFO: ANALYSIS SUCCESSFUL, you can browse http://sonarqube-server/dashboard/index/scm.project.4.0
12:49:43 INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
12:49:43 INFO: More about the report processing at http://sonarqube-server/api/ce/task?id=AV-af9So2HbsBuSrsvrw
12:50:22 INFO: ------------------------------------------------------------------------
12:50:22 INFO: EXECUTION SUCCESS

Sonarqube项目仪表板显示“自创建以来未执行任何分析。唯一可用的部分是配置。”并且还在SonarQube Web下 - >项目 - >管理 - >后台任务 - >日志显示以下错误。

错误:

2017.11.07 13:04:23 ERROR [o.s.s.c.t.CeWorkerCallableImpl] Failed to execute task AV-VUEIr2HbsBuSrsvnY
java.lang.OutOfMemoryError: GC overhead limit exceeded

我已经尝试了以下内容,仍然存在同样的问题。

  1. 尝试使用-Xmx10240m -XX:MaxPermSize=1024m -XX:ReservedCodeCacheSize=128m
  2. 的SONAR_RUNNER_OPTS选项
  3. 然后在sonar-project.properties文件中我添加了sonar.ce.javaOpts=-Xmx1280m& sonar.web.javaOpts=-Xmx1280m
  4. 或者我还需要增加构建机器RAM(或)16 GB对于62 GB的代码是否足够?

1 个答案:

答案 0 :(得分:2)

您需要升级在服务器端而非扫描仪端为计算引擎分配的内存(针对此特定问题)。

因此,在SonarQube服务器上,更新以下参数:

sonar.ce.javaOpts=-Xmx2G -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true

它将允许计算引擎整合您的报告以消耗2Gb内存(默认情况下它是512Mb)。