【问题标题】:How to avoid OutOfMemoryErrors when processing big analysis reports?处理大型分析报告时如何避免 OutOfMemory 错误?
【发布时间】:2018-02-12 06:54:03
【问题描述】:

在 CentOS 7.3 上从 Jenkins 运行 SonarQube 5.6.6,我收到以下错误:

2017.09.01 19:05:16 错误 [o.s.s.c.t.CeWorkerCallableImpl] 无法执行任务 AV485bp0qXlQ-QPWWE9A
java.lang.OutOfMemoryError:Java 堆空间
2017.09.01 19:05:17 错误 [o.s.s.c.t.CeWorkerCallableImpl] 执行任务 |项目=PP::Symphony3M |类型=报告 | id=AV485bp0qXlQ-QPWWE9A |时间=74089ms

sonar.ce.javaOpts 设置如下:

sonar.ce.javaOpts=-Xmx60g -Xms1g -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true

在分析一百万个 LOC 项目时,我应该给 SonarQube 多少堆空间?还是有其他方法可以避免 Java 堆空间问题?

【问题讨论】:

  • 也许您应该将项目拆分为逻辑部分。
  • 那么分析结果如何关联呢?

标签: sonarqube sonarqube5.6


【解决方案1】:

您可以分配的最大堆取决于您服务器上的空闲 RAM。 free 命令可以帮助识别统计信息。基于免费的 Ram,您可以设置您的 Xmx 值。

顺便说一句,确保代码在服务器上编译。如果您能够编译而不是扫描,那么只有增加堆会有帮助。

【讨论】:

  • 项目可以建在64GB内存的服务器上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-20
  • 1970-01-01
  • 1970-01-01
  • 2013-07-12
  • 1970-01-01
相关资源
最近更新 更多