首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在kubernetes活动处理器上运行spring-boot容器时,使用主机CPU来设置,而不是对容器设置k8s cpu限制。

在kubernetes活动处理器上运行spring-boot容器时,使用主机CPU来设置,而不是对容器设置k8s cpu限制。
EN

Stack Overflow用户
提问于 2022-01-07 15:15:54
回答 1查看 969关注 0票数 0

我们在kubernetes上运行使用bootBuildImage gradle任务创建的spring引导容器。我们在k8s中为启动时的豆荚提供CPU限制和内存限制。我们使用:

  • spring-启动版本2.6.2
  • 用gradle弹簧引导插件bootBuildImage任务构建的docker映像
  • 管理基于spring启动的部署
  • JDK 11 (启用封锁犬)
  • GKE中的32个CPU主机
  • 在dev中,我们将容器限制为1cpu和1Gig内存。

我们注意到,所有基于弹簧引导的容器都是配置的(即线程的nb ),就像运行在32个CPU实例上一样。

Docker启动日志显示

将活动处理器计数设置为32 .JAVA_TOOL_OPTIONS:. -XX:ActiveProcessorCount=32

在带有see服务器的spring admin()中,线程池提供了线程池,就像应用程序运行在分配给容器的32个CPU上一样,即使容器被k8s限制在一个CPU上。分配给JVM的内存是正确的。

如何确保活动CPU计数反映k8s CPU限制?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-08 13:55:13

根据您所包含的输出,看起来您使用的是构建包(即./mvnw spring-boot:build-image./gradlew bootBuildImagepack build)。

在这种情况下,可以使用JAVA_TOOL_OPTIONS设置env变量-XX:ActiveProcessorCount=x,以覆盖默认计算。默认计算将提取处理器总数(如Go的runtime.NumCPU()函数所报告)。

旁注。您要求的似乎是合理的,所以我开了个问题看看我们是否能够让它检测有限的CPU计数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70623349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档