java项目容器化(docker)部署注意点

28 篇文章 0 订阅
10 篇文章 0 订阅

cgroup 支持

从 jdk 8u121 开始支持,即低于这个版本无法使用容器特性

https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8170888

https://bugs.openjdk.org/browse/JDK-8170888

https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8175898

https://bugs.openjdk.org/browse/JDK-8140793

从 jdk 8u131 开始支持 docker 的内存和cpu限制

https://blogs.oracle.com/java/post/java-se-support-for-docker-cpu-and-memory-limits

启用方式

-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap

支持内存自适应

在 jdk 8u191 中加入 UseContainerSupport 和 ActiveProcessorCount 参数,因为 jdk 8 使用最广泛

https://www.oracle.com/java/technologies/javase/8u191-relnotes.html

https://jvm-argument-for-docker.teaho.net/

其中,-XX:InitialRAMFraction、-XX:MaxRAMFraction、-XX:MinRAMFraction 标记为过期,对应的替换参数将 Fraction 替换为 Percentage,即 -XX:InitialRAMPercentage、 -XX:MaxRAMPercentage、-XX:MinRAMPercentage。

替换前InitialRAMFractionMaxRAMFractionMinRAMFraction
替换后InitialRAMPercentageMaxRAMPercentageMinRAMPercentage

需要手动添加 -XX:+UseContainerSupport,来进行内存自适应。

https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8146115

https://bugs.openjdk.org/browse/JDK-8146115

指定使用 cpu 数量

-XX:ActiveProcessorCount=xx

从 jdk 10 开始默认支持容器化部署

java

总结

jdk 版本 < 8u121,不要在容器化环境中使用

8u131 <= jdk 版本 < 8u191,添加参数 -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap 支持内存自适应。

8u191 <= jdk 版本 < jdk 10,添加了参数 -XX:+UseContainerSupport 支持内存自适应,-XX:ActiveProcessorCount 支持调整 cpu 数量。

jdk 10 <= jdk 版本,-XX:+UseContainerSupport 默认启用。

UseContainerSupport 参数只在 linux x64 系统上使用。

按照文章的讲解

https://zhuanlan.zhihu.com/p/602433997

上面的情况都是在 cgroup v1的情况下,如果在 cgroup v2下就会有问题了。

https://bugs.openjdk.org/browse/JDK-8230305

从 jdk 11.0.6 和 jdk 8u372 开始支持 cgroup v2。

参考链接

https://blog.csdn.net/lyy12332133/article/details/131311033

https://www.cnblogs.com/xiaoqi/p/container-jvm.html

https://blog.csdn.net/lyy12332133/article/details/131311033

https://zhuanlan.zhihu.com/p/602433997

https://www.jianshu.com/p/040a1315bce5

https://blog.csdn.net/qq_26824159/article/details/130112077

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值