Java 应用在 Kubernetes 中的内存配置
作者:互联网
在基于物理的服务器(此处主要与容器平台进行区分,故此描述)上运行 Java 应用程序时,我们通常会使用 Java 虚拟机参数 "-Xms、-Xmx" 来指定 Java 堆内存的初始值和最大值。如果要将我们的应用程序移植到容器平台,如何在容器环境中配置 Java 堆内存大小呢?有没有最佳做法?
- MaxRAMPercentage
- InitialRAMPercentage
- MinRAMPercentage
这三个参数是 JDK8U191 为适配 Docker 容器新增的几个参数,类比 Xmx、Xms
注:-XX:InitialRAMFraction、-XX:MaxRAMFraction、-XX:MinRAMFraction 已经被标记为 deprecated。
Docker 容器模式下,我们可以给每个 JVM 实例所属的 POD 分配任意大小的内存上限。比如:给每个账户服务分配 4G,给每个支付服务分配 8G。如此一来,启动脚本就不好写成通用的了,指定 3G 也不是,指定 6G 也不是。但是,有了这三个新增参数,我们就可以在通用的启动脚本中指定 75%(-XX:MaxRAMPercentage=75 -XX:InitialRAMPercentage=75 -XX:MinRAMPercentage=75)
标签:容器,Java,Kubernetes,XX,75,参数,内存 来源: https://www.cnblogs.com/steven-note/p/16323692.html