SonarQube 服务器日志显示超过 GC 开销限制并且 TERM 陷入关闭

SonarQube Server Log shows GC overhead limit exceeded and TERM trapped Shutting down

服务器环境: SonarQube – 6.7.7 and Openjdk version - "1.8.0_222"

问题: 突然我们的 sonarqube web 应用程序开始挂起。从 sonar.log 中发现以下错误。

java.lang.OutOfMemoryError: GC overhead limit exceeded
Dumping heap to java_pid21155.hprof ...
Heap dump file created [10548624193 bytes in 50.277 secs]
TERM trapped.  Shutting down.

修复相同的问题。 $SONAR_HOME/conf/sonar.properties 文件中 Web 服务器、计算引擎和弹性搜索值的增加值。

Web 服务器:

sonar.web.javaOpts=-Xmx8G -Xms512m -XX:+HeapDumpOnOutOfMemoryError

计算引擎:

sonar.ce.javaOpts=-Xmx8G -Xms512m -XX:+HeapDumpOnOutOfMemoryError

弹性搜索:

sonar.search.javaOpts=-Xms6G -Xmx6G -XX:+HeapDumpOnOutOfMemoryError

但是没用。然后发现服务是运行jre路径-/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/jre/bin/java。所以在下面 $SONAR_HOME/conf/wrapper.conf 文件

中更新
wrapper.java.command=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/bin/java 

但服务重启后它仍然只运行 jre/bin/java。然后我配置 JAVA_HOME 指向我的 JDK 但它仍然是 运行 到 jre,任何输入都有助于解决问题。

通过将 Web 服务器、Compute Engine 和 Elastic 搜索的 -Xms512m 值增加到 -Xms4G 参数解决了问题。