服务器环境: SonarQube – 6.7.7 和 Openjdk 版本 - “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 服务器、计算引擎和 Elastic Search 值。
网络服务器:
sonar.web.javaOpts=-Xmx8G -Xms512m -XX:+HeapDumpOnOutOfMemoryError
计算引擎:
sonar.ce.javaOpts=-Xmx8G -Xms512m -XX:+HeapDumpOnOutOfMemoryError
Elasticsearch :
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 服务器、计算引擎和 Elasticsearch 的 -Xms512m 值增加到 -Xms4G 参数解决了问题。
关于java - SonarQube 服务器日志显示超出了 GC 开销限制并且 TERM 被捕获正在关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57722952/