美文网首页
JDK对docker容器的支持

JDK对docker容器的支持

作者: 王义杰 | 来源:发表于2020-04-23 18:01 被阅读0次

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,代码改动见8194086: Remove deprecated experimental flag 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

相关文章

  • JDK对docker容器的支持

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

  • Linux之JDK安装

    Linux之JDK安装 目录 JDK简单介绍 Docker安装JDK(容器JDK) Linux安装JDKyum安装...

  • docker生态容器

    Docker容器生态 Docker生态:容器核心技术、平台技术、支持技术 容器核心技术:指的是container在...

  • 7. Docker 引擎 - 联网的容器

    使用默认网络运行容器 Docker通过网络驱动(network driver)为容器提供网络支持, Docker默...

  • centos6.9 安装JAVA-WEB环境

    本文包含Docker的安装、docker启动mysql容器、安装nginx、配置jdk环境、安装tomcat以及c...

  • JDK8 对 Docker 的支持

    JDK8、JDK9 Java 8u131 及以上版本开始支持了 Docker 的 CPU 和内存限制。 对于 CP...

  • 使用docker安装jekins(linux)-自定义镜像文件

    解决问题:解决docker容器安装jenkins后无法使用宿主机docker、jdk、maven命令的问题。 1、...

  • Spring Boot笔记(6)Docker

    五、Docker 1、简介 Docker是一个开源的应用容器引擎;是一个轻量级容器技术; Docker支持将软件编...

  • docker的简单学习

    五、Docker 1、简介 Docker是一个开源的应用容器引擎;是一个轻量级容器技术; Docker支持将软件编...

  • SpringBoot使用5--docker

    五、Docker 1、简介 Docker是一个开源的应用容器引擎;是一个轻量级容器技术; Docker支持将软件编...

网友评论

      本文标题:JDK对docker容器的支持

      本文链接:https://www.haomeiwen.com/subject/xtzaihtx.html