Java 11 在容器中无法获取正确的 CPU 处理器个数
Java JVM 大约 513 字现象
使用ForkJoinPool
时,发现线程个数始终是1
。
ForkJoinPool.getCommonPoolParallelism()
使用ManagementFactory
时,发现线程个数始终是1
。
ManagementFactory.getOperatingSystemMXBean().getAvailableProcessors()
使用Runtime
时,发现线程个数始终是1
。
Runtime.getRuntime().availableProcessors()
解决方法
方法一:禁用容器化支持
该方法适用于运行时间不长的任务。
启动时添加JVM
参数,不使用容器化支持。
-XX:-UseContainerSupport
方法二:指定 CPU 处理器个数
该方法适用于进程常驻的场景。
使用-XX:ActiveProcessorCount
显式的指定处理器个数。
-XX:ActiveProcessorCount=8
方法三:升级到 Java 17
可以考虑升级到下一个LTS
版本:Java 17
。
参考
阅读 459 · 发布于 2023-06-05
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Rust 标准库 API Option阅读 361
-
软考-系统架构设计师:三级模式-两级映射阅读 1927
-
Spring Boot JdbcTemplate in 语句注意事项阅读 3622
-
Vue $nextTick 解决 v-if 切换后操作 DOM 报错问题阅读 813
-
Spring Boot 中的 ApplicationRunner 和 CommandLineRunner阅读 3259
-
VirtualBox 安装 Alpine Linux阅读 1077
-
从源码到镜像:使用 Docker 多阶段构建 Spring Boot 镜像阅读 854
-
Android 隐藏软键盘阅读 1638
-
Go channel 通道阅读 166
-
Kubernetes Pod 控制器 Job阅读 933