博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
聊聊新版JDK对docker容器的支持
阅读量:6487 次
发布时间:2019-06-23

本文共 1525 字,大约阅读时间需要 5 分钟。

  hot3.png

本文主要聊聊新版JDK对docker容器的支持

java8及java9

Java 8u131及以上版本开始支持了Docker的cpu和memory限制。

cpu limit

即如果没有显式指定-XX:ParalllelGCThreads 或者 -XX:CICompilerCount, 那么JVM使用docker的cpu限制。如果docker有指定cpu limit,jvm参数也有指定-XX:ParalllelGCThreads 或者 -XX:CICompilerCount,那么以指定的参数为准。

memory limit

在java8u131+及java9,需要加上-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap才能使得Xmx感知docker的memory limit。

查看参数默认值

java -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal

部分输出

bool UseCGroupMemoryLimitForHeap              = false                               {experimental} {default}

可以看到在java9,UseCGroupMemoryLimitForHeap参数还是实验性的,默认关闭。

java10

bool UseCGroupMemoryLimitForHeap              = false                               {experimental} {default}

java10,UseCGroupMemoryLimitForHeap还是experimental,不过标记为废弃。

不过java10新引入了1个参数

int ActiveProcessorCount                     = -1                                       {product} {default}

ActiveProcessorCount可以用来指定cpu的个数

java11

java11正式移除UseCGroupMemoryLimitForHeap,代码改动见

同时引入1个新参数

bool UseContainerSupport                      = true                                     {product} {default}

UseContainerSupport默认为true,可以使用-Xlog:os+container=trace参数来查看详情。 即使使用-XX:-UseContainerSupport禁用了容器支持,-XX:ActiveProcessorCount如果有指定,该参数值仍然会被使用。

小结

参数/版本 -XX:+UseCGroupMemoryLimitForHeap -XX:ActiveProcessorCount -XX:+UseContainerSupport
java9 experimental,默认false
java10 experimental,默认false -1
java11 移除 -1 product,默认true

doc

转载于:https://my.oschina.net/go4it/blog/1788860

你可能感兴趣的文章
oracle 配置监听
查看>>
moosefs即将发布新版
查看>>
SmartGit 试用过期
查看>>
python 测试驱动开发的简单例子
查看>>
Aes 加密简单例子
查看>>
AE 线编辑
查看>>
软件设计之UML—UML的构成[上]
查看>>
如何使用AdMob中介界面?
查看>>
分享一个shell脚本:通过Jumper机器来创建Jumper和target机器账号
查看>>
UITableViewCell分割线不是左对齐的问题
查看>>
CentOS7 编译安装PHP7
查看>>
MySQL常见错误代码及代码说明
查看>>
Cglib动态代理基础使用
查看>>
技术人员,为什么会苦逼
查看>>
Maven
查看>>
.NET 同步与异步之锁(Lock、Monitor)(七)
查看>>
前端大牛们都学过哪些?
查看>>
在iOS当中发送电子邮件和短信
查看>>
13~1003的和
查看>>
pycharm如何新项目如何不默认创建虚拟环境(吐槽)
查看>>