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

news2024/10/7 8:32:18

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1117402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EPLAN_008#3D布局图

一、新建页 多线原理图纸画好以后 打开布局空间导航器——右键——新建 二、插入箱柜 菜单栏——插入——箱柜 三、显示安装板 然后调整视角 四、插入线槽 菜单栏——插入——线槽——选择合适的线槽——确定 按A键可以切换线槽方向&#xff0c;如果位置不对&#xff0c;可以再…

redis的cluster

1.我们的哨兵模式中&#xff0c;当主节点挂掉以后&#xff0c;此时哨兵会重新进行选举&#xff0c;选举出新的主节点去对外提供写服务 在选举的过程中,他redis整个集群是不提供写服务的 &#xff08;因为此时我们哨兵对外提供写服务的只有Master&#xff09; 2.我们单节点的red…

NRK3301语音芯片在智能窗帘上的应用

窗帘是人们日常生活中所经常使用的家居产品&#xff0c;传统的窗帘大多都需要手动拉动窗帘使用&#xff1b;存在着拉拽费劲&#xff0c;挂钩容易掉落等问题。随着数字化转型的升级&#xff0c;推进了窗帘市场的高质量发展。智能窗帘也“适时出现”出现了&#xff0c;一款带有语…

CV计算机视觉每日开源代码Paper with code速览-2023.10.20

精华置顶 墙裂推荐&#xff01;小白如何1个月系统学习CV核心知识&#xff1a;链接 点击CV计算机视觉&#xff0c;关注更多CV干货 论文已打包&#xff0c;点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【目标检测】Click on Mask: A Labor-efficient Annotati…

Microsoft Edge中使用开源的ChatGPT

一、双击打开浏览器 找到&#xff1a;扩展&#xff0c;打开 二、打开Microsoft Edge加载项 三、Move tab新标签 获取免费ChatGPT 四、启用Move tab。启用ChatGPT。 扩展 管理扩展 启用 五、新建标签页&#xff0c;使用GPT 六、使用举例 提问 GPT回复

不想加班的小伙伴们,请把这四个神器焊在电脑上~

今天又来给大家分享干货啦&#xff0c;如果你下载视频没渠道&#xff0c;写方案没灵感思路&#xff0c;做表格太慢&#xff0c;做海报太复杂&#xff0c;那你一点要看这一篇&#xff0c;今天分享的四个宝藏网站专门解决以上问题&#xff0c;一起来看看吧&#xff01; 一、WeDow…

中文编程开发语言工具应用案例:ps5体验馆计时收费管理系统软件

中文编程开发语言工具应用案例&#xff1a;ps5体验馆计时收费管理系统软件 软件部分功能&#xff1a; 1、计时计费功能&#xff1a;只需点开始计时即可&#xff0c;时间直观显示 2、商品管理功能&#xff1a;可以管理饮料等商品 3、会员管理功能&#xff1a;支持只用手机号作…

Android---RecyclerView替代ListView

RecyclerView 简称RV&#xff0c;是作为 ListView 和 GridView 的加强版出现&#xff0c;目的是在有限的屏幕之上展示大量的内容。因此&#xff0c;RecyclerView 的复用机制的实现是它的一个核心部分。 RV 常规使用方式 // 1 RecyclerView.setLayoutManager(); // 2 Recycler…

JavaCV + FFmpeg 播放音视频

JavaCV FFmpeg 播放音视频 1、导入JavaCV库1.1 使用ffmpeg必要库1.2 简单FFmpeg命令 待续~~~~ FFmpeg documentation bytedeco/javacv - GitHub 1、导入JavaCV库 gradle下面这种会导入javacv-platform所有包&#xff0c;非常耗时&#xff1a;https://repo.maven.apache.org/…

西门子博途软件加密保护方法

一、程序块的专有技术保护 程序块的专有技术保护主要是对项目中的程序块&#xff08;OB、FB、FC、DB&#xff09;进行访问保护&#xff0c;如果没有专有技术保护密码则无法看到程序块中的具体内容&#xff0c;对于专有技术保护的 DB 块&#xff0c;如果没有密码只能读不能写。…

怎么理解函数式编程思维?

文章目录 &#xff08;2023年9.29号&#xff0c;正月十五家乡的月亮&#xff09; ​ 理解函数式编程要注重思维的转变。函数式编程聚焦于简洁的高阶函数&#xff0c;高阶函数注重封装底层运作原理来解决复杂的业务场景&#xff0c;比如 Scala、Groovy、Clojure 语言&#xff1a…

解决pip安装包后但是Pycharm检测不到

首先要知道python找包的原理&#xff1a;原理 之后把一下代码打印一下&#xff1a; import sys print(sys.executable)# /usr/bin/python2 print(sys.path)# [/usr/lib/python2.7, /usr/lib/python2.7/dist-packages, /usr/local/lib/python2.7/dist-packages] print(sys.prefi…

Leetcode—动态规划(背包问题)

1、背包基础问题&#xff1a;01背包 输入&#xff1a;背包最大重量为 4。物品重量数组weight[1,3,4]&#xff0c;对应的价值数组value[15,20,30]。 五部曲&#xff1a; 1、确定dp数组以及下标的含义 对于背包问题&#xff0c;dp采用二维数组&#xff0c;即dp[i][j]表示从下标…

第78篇:巧妙方法抓取某商用红队扫描器的4000多个漏洞利用exp

Part1 前言 大家好&#xff0c;我是ABC_123&#xff0c;本期分享一个真实案例。大约在两年前&#xff0c;有机会接触到一台红队扫描器设备&#xff08;也可以理解为渗透测试机器人&#xff09;&#xff0c;我抱着好奇的心态去那里做了一下测试&#xff0c;感觉还不错。里面大概…

jvm内存溢出溯源

1.先上神器 2.远程监控配置 JProfile是一款性能瓶颈分析工具&#xff0c;具体要干啥呢下面看 1&#xff1a;创建一个监控任务 2&#xff1a;选择tomcat版本 3&#xff1a;监控远程服务器 4&#xff1a;选择oracle 1.5.0 5&#xff1a;填写需要监控的服务器地址 6&#x…

后台交互-首页->与后台数据进行交互,wsx的使用

与后台数据进行交互wsx的使用 1.与后台数据进行交互 // index.js // 获取应用实例 const app getApp() const apirequire("../../config/app.js") const utilrequire("../../utils/util.js") Page({data: {imgSrcs:[{"img": "https://cd…

线性代数1:线性方程和系统

图片来自施泰德博物馆 Digital Collection (staedelmuseum.de) 一、前言 通过这些文章&#xff0c;我希望巩固我对这些基本概念的理解&#xff0c;同时如果可能的话&#xff0c;通过我希望成为一种基于直觉的数学学习方法为其他人提供额外的清晰度。如果有任何错误或机会需要我…

ToDoList全局事件总线学习笔记

全局事件总线 全局事件总线&#xff1a;任意组件间通信 安装全局事件总线 new Vue({……beforeCreate(){Vue.prototype.$busthis},…… })使用事件总线 接收数据&#xff1a;A组件想接收数据&#xff0c;则在A组件中给$bus绑定自定义事件&#xff0c;事件的回调留在A组件自…

2023年【氧化工艺】考试题库及氧化工艺考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 氧化工艺考试题库根据新氧化工艺考试大纲要求&#xff0c;安全生产模拟考试一点通将氧化工艺模拟考试试题进行汇编&#xff0c;组成一套氧化工艺全真模拟考试试题&#xff0c;学员可通过氧化工艺考试总结全真模拟&…

镜头边缘的解析力通常比中心差很多的原因是什么?

1、问题背景 之前有总结过一篇文章&#xff0c;“ 相机出图画面一半清晰&#xff0c;一半模糊的原因是什么&#xff1f;”里面有描述到关于镜头边缘的清晰度通常比中心要差的原因主要是光的折射导致的&#xff0c;有读者指出问题&#xff0c;折射率是和传输介质相关&#xff0…