【问题标题】:Nexus sonatype/nexus3:3.17.0 on docker tells its using only one cpudocker 上的 Nexus sonatype/nexus3:3.17.0 告诉它只使用一个 cpu
【发布时间】:2020-05-08 02:28:20
【问题描述】:

我在 4 CPU Docker 主机上运行 Nexus 3,仅限制容器的 RAM 使用。

从 3.16.1 升级到 sonatype/nexus3:3.17.0 后,Nexus 在管理后端的状态页面上告诉我:

可用 CPU:主机系统最多为应用程序分配 1 个内核。建议至少 4 个。

我不知道为什么会这样显示

所以我进入了 nexus 容器并检索了一些信息,其中有多少核心

cat /proc/cpuinfo | awk '/^processor/{print $3}' | wc -l

结果:4

有人知道这里有什么问题吗?

【问题讨论】:

标签: nexus3


【解决方案1】:

我终于发现这里出了什么问题。

Java 及其糟糕的 docker 实现。

因此,如果您希望您的 JavaVM 完全识别所有主机 CPU,您必须设置正确的 JAVA_OPTS。

对于 Nexus,这意味着:

INSTALL4J_ADD_VM_PARAMS=-XX:ActiveProcessorCount=<NUMBER_OF_CORES>

瞧 - Nexus 状态页面获得了适量的 CPU 内核。

【讨论】:

  • “Java Docker 实现”应该是什么意思?这里的 Java 是一个运行 JVM 并支持执行 Java 二进制文件的程序,如果没有该选项,Java 将获得最大编号。操作系统告诉它可用的 CPU 数量,也许在你的情况下你有 Docker 设置的容器默认值。
猜你喜欢
  • 2021-04-11
  • 2017-08-14
  • 1970-01-01
  • 2016-07-24
  • 2017-04-23
  • 2018-11-29
  • 1970-01-01
  • 1970-01-01
  • 2020-12-10
相关资源
最近更新 更多