K8S时代的JAVA_OPTS参数

问题

最近Spring要住到k8s的pod里面去了,导致原来的JAVA_OPTS配置方式,不能那么大开大合了。这里假设使用的Java 8.

原来的JAVA_OPTS参数:

bash 复制代码
JAVA_OPTS="-server -Xms6g -Xmx6g -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -Djava.awt.headless=true"

新JAVA_OPTS参数

bash 复制代码
JAVA_OPTS="-server -XX:MinRAMPercentage=50.0 -XX:MaxRAMPercentage=80.0 -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -Djava.awt.headless=true"

这里比较难以理解的是如下参数:

  • -XX:InitiatingHeapOccupancyPercent=35:这里意思但堆内存占到35%时,开始进行标记,以便触发并发GC。如果JVM支持-XX:+G1UseAdaptiveIHOP设置,就没有必要研究这个参数的设置了,但是,-XX:+G1UseAdaptiveIHOP是在JDK 9之后才支持的。
  • -XX:MinRAMPercentage=50.0 -XX:MaxRAMPercentage=80.0:这个意思比较直白,最小使用物理内存的50%,最大使用物理内存的80%。但是,这个在容器时代,需要JVM支持-XX:+UseContainerSupport设置。
  • -Djava.awt.headless=true:表示开启JVM无头模式(没有GUI),就是后台Java是一个纯后台存储,没有一点点前端的东西。如页面动态生成之类的东西。

参考:

相关推荐
Boilermaker19921 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
Cherry的跨界思维1 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
alonewolf_992 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
一嘴一个橘子2 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
sheji34162 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java
恋爱绝缘体13 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
唯情于酒3 小时前
Docker学习
学习·docker·容器
wszy18093 小时前
新文章标签:让用户一眼发现最新内容
java·python·harmonyos
喵叔哟3 小时前
20.部署与运维
运维·docker·容器·.net
wszy18093 小时前
顶部标题栏的设计与实现:让用户知道自己在哪
java·python·react native·harmonyos