【问题标题】:Sonarqube background tasks running foreverSonarqube 后台任务永远运行
【发布时间】:2017-12-30 04:45:56
【问题描述】:

我们已经运行 SonarQube 5.6.4 有一段时间了。然后我们突然观察到后台任务的队列在增加。在日志中,我们看到这样的消息:

2017.07.24 13:56:10 INFO  [o.s.s.es.BulkIndexer] 0 requests processed (0 items/sec)

每分钟一个日志条目。

然后开始的其他任务失败了:

org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes were available: [[sonar-1498219166409][3QkGfCI8RUSn6vapRi5SSg][a2d477fdfe7a][inet[/127.0.0.1:9001]

我不知道如何找到导致错误的任何东西。配置没有任何变化。

我重新启动了服务器,但没有任何改变。

对我来说值得注意的是弹性搜索似乎打开的端口数量:

tcp        0      0 localhost:etlservicemgr localhost:53058         ESTABLISHED 24/java
tcp        0      0 localhost:etlservicemgr localhost:53070         ESTABLISHED 24/java
tcp        0      0 localhost:53058         localhost:etlservicemgr ESTABLISHED 220/java
tcp        0      0 localhost:etlservicemgr localhost:52934         ESTABLISHED 24/java
tcp        0      0 a2d477fdfe7a:49760      sonar-db.netwo:postgres ESTABLISHED 220/java
tcp        0      0 localhost:etlservicemgr localhost:52846         ESTABLISHED 24/java
tcp        0      0 localhost:52924         localhost:etlservicemgr ESTABLISHED 119/java
tcp        0      0 localhost:52928         localhost:etlservicemgr ESTABLISHED 119/java
tcp        0      0 localhost:53076         localhost:etlservicemgr ESTABLISHED 220/java
tcp        0      0 localhost:etlservicemgr localhost:52866         ESTABLISHED 24/java
tcp        0      0 localhost:53074         localhost:etlservicemgr ESTABLISHED 220/java
tcp        0      0 localhost:etlservicemgr localhost:52922         ESTABLISHED 24/java

(真的是五倍)

有人知道如何找到问题的原因吗?

sonarqube.properties 具有默认值。唯一的变化是:

sonar.security.realm=LDAP
sonar.security.savePassword=true
sonar.security.updateUserAttributes=true
sonar.authenticator.downcase=true
sonar.authenticator.createUsers=true

以及 LDAP 配置。

【问题讨论】:

  • 在 netstat 中 - 来自 localhost 的每个连接都有两个条目,一个来自连接的每一侧的角度 - 因此您可以在开始分析之前废弃一半的条目
  • CPU/RAM 运行状况如何?在系统级别和 JVM 级别。如果它很紧,那么也许是时候微调你的配置了,看看它是如何进行的,并相应地更新你的帖子。
  • CPU 几乎空闲。 RAM 大约有 1GB 可用,而 4GB 的 vm。我已经观察了几个小时了。该作业从昨天开始仍在运行,阻止其他人运行。我应该如何微调我的配置?我没有内存不足错误或其他异常。
  • 今天我很幸运:我重新启动了 SonarQube(再次)试一试,幸运的是有一个错误导致这项工作停止:
  • org.sonar.api.utils.MessageException: Validation of project failed: o Date of analysis cannot be older than the date of the last known analysis on this project. Value: "2017-07-24T11:32:45+0000". Latest analysis: "2017-07-24T11:32:45+0000". It's only possible to rebuild the past in a chronological order. 2017.07.26 08:55:04 ERROR [o.s.s.c.t.CeWorkerCallableImpl] Executed task | project=com.bosch.diax:diax-core:master | type=REPORT | id=AV10YaRIugjf70vCEHMK | submitter=dib9pl | time=3757ms

标签: java elasticsearch sonarqube sonarqube-ops


【解决方案1】:

虽然我仍然不明白为什么 taks 被卡住并且没有抛出异常,但我们的问题似乎通过将 worker 的堆空间从 500MB 增加到 1GB 来解决:

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

【讨论】:

  • 在不相关的说明中,令人失望的是,SonarQube 正在放缓接近商业/支持第一个模型。以为它会是像 Jenkins 这样的工具,在 SQ 6.7 LTS 中,他们将开源版本的 ce worker 数量限制为 1!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-27
  • 1970-01-01
相关资源
最近更新 更多