docker 上的 Nexus sonatype/nexus3:3.17.0 告诉它只使用一个 cpu

Nexus sonatype/nexus3:3.17.0 on docker tells its using only one cpu

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

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

可用CPUs:主机系统正在为应用程序分配最多 1 个核心。建议最少 4 个。

我不知道为什么还要显示

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

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

结果:4

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

终于发现问题所在了

Java 及其蹩脚的 docker 实现。

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

对于 Nexus 这意味着:

INSTALL4J_ADD_VM_PARAMS=-XX:ActiveProcessorCount=<NUMBER_OF_CORES>

Et voila - Nexus 状态页面获得了适量的 CPU 核心。