加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 空间 > 正文

容器中的JVM资源该如何被安全的限制?

发布时间:2019-01-28 06:14:08 所属栏目:空间 来源:运维猿
导读:前言 Java与Docker的结合,虽然更好的解决了application的封装问题。但也存在着不兼容,比如Java并不能自动的发现Docker设置的内存限制,CPU限制。 这将导致JVM不能稳定服务业务!容器会杀死你JVM进程,而健康检查又将拉起你的JVM进程,进而导致你监控你的po

OpenJDK 9 -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap (正确的识别容器限制,1G)安全

  1. [root@xiaoke-test ~]# docker run -m 4GB --rm openjdk:9-jre-slim java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XshowSettings:vm -version 
  2. VM settings: 
  3.  Max. Heap Size (Estimated): 1.00G 
  4.  Using VM: OpenJDK 64-Bit Server VM 
  5. openjdk version "9.0.4" 
  6. OpenJDK Runtime Environment (build 9.0.4+12-Debian-4) 
  7. OpenJDK 64-Bit Server VM (build 9.0.4+12-Debian-4, mixed mode) 

OpenJDK 10(正确的识别容器限制,1G)安全

  1. [root@xiaoke-test ~]# docker run -m 32GB --rm openjdk:10-jre-slim java -XshowSettings:vm -XX:MaxRAMFraction=1 -version 
  2. VM settings: 
  3.  Max. Heap Size (Estimated): 1.00G 
  4.  Using VM: OpenJDK 64-Bit Server VM 
  5. openjdk version "10.0.2" 2018-07-17 
  6. OpenJDK Runtime Environment (build 10.0.2+13-Debian-2) 
  7. OpenJDK 64-Bit Server VM (build 10.0.2+13-Debian-2, mixed mode) 

OpenJDK 11(正确的识别容器限制,1G)安全

  1. [root@xiaoke-test ~]# docker run -m 4GB --rm openjdk:11-jre-slim java -XshowSettings:vm -version 
  2. VM settings: 
  3.  Max. Heap Size (Estimated): 1.00G 
  4.  Using VM: OpenJDK 64-Bit Server VM 
  5. openjdk version "11.0.1" 2018-10-16 
  6. OpenJDK Runtime Environment (build 11.0.1+13-Debian-3) 
  7. OpenJDK 64-Bit Server VM (build 11.0.1+13-Debian-3, mixed mode, sharing) 

OpenJDK 12(正确的识别容器限制,1G)安全

  1. [root@xiaoke-test ~]# docker run -m 4GB --rm openjdk:12 java -XshowSettings:vm -version 
  2. VM settings: 
  3.  Max. Heap Size (Estimated): 1.00G 
  4.  Using VM: OpenJDK 64-Bit Server VM 
  5. openjdk version "12-ea" 2019-03-19 
  6. OpenJDK Runtime Environment (build 12-ea+23) 
  7. OpenJDK 64-Bit Server VM (build 12-ea+23, mixed mode, sharing) 

测试用例2(IBMOPENJ9)

  1. docker run -m 4GB --rm adoptopenjdk/openjdk8-openj9:alpine-slim java -XshowSettings:vm -version 
  2. docker run -m 4GB --rm adoptopenjdk/openjdk9-openj9:alpine-slim java -XshowSettings:vm -version 
  3. docker run -m 4GB --rm adoptopenjdk/openjdk10-openj9:alpine-slim java -XshowSettings:vm -version 
  4. docker run -m 4GB --rm adoptopenjdk/openjdk11-openj9:alpine-slim java -XshowSettings:vm -version 

openjdk8-openj9 (正确的识别容器限制,3G)安全

  1. [root@xiaoke-test ~]# docker run -m 4GB --rm adoptopenjdk/openjdk8-openj9:alpine-slim java -XshowSettings:vm -version 
  2. VM settings: 
  3.  Max. Heap Size (Estimated): 3.00G 
  4.  Ergonomics Machine Class: server 
  5.  Using VM: Eclipse OpenJ9 VM 
  6. openjdk version "1.8.0_192" 
  7. OpenJDK Runtime Environment (build 1.8.0_192-b12_openj9) 
  8. Eclipse OpenJ9 VM (build openj9-0.11.0, JRE 1.8.0 Linux amd64-64-Bit Compressed References 20181107_95 (JIT enabled, AOT enabled) 
  9. OpenJ9 - 090ff9dcd 
  10. OMR - ea548a66 
  11. JCL - b5a3affe73 based on jdk8u192-b12) 

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读