Java容器相关参数随记

来自三线的随记

Java动态参数随记(注入运行时参数)

Java命令参数随记

命令随记

查看系统中有哪些java进程,命令 jps

查看指定java进程占用的内存情况,命令 jmap -heap ${PID}

查看系统或容器配置,命令 java -XshowSettings:system -version

查看JVM的相关配置,命令 java -XshowSettings:vm -version

查看支持的java参数列表 java -XX:+PrintFlagsFinal -version,视情况需要加上-XX:+UnlockExperimentalVMOptions-XX:+UnlockDiagnosticVMOptions 参数

查看是否支持UseCGroupMemoryLimitForHeap参数 java -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -version |grep -i UseCGroupMemoryLimitForHeap

JVM参数

-XX:+UnlockExperimentalVMOptions

用于解锁实验性参数

-XX:+UnlockDiagnosticVMOptions

用于解锁一些诊断性的JVM选项。这些选项通常用于调试和诊断JVM的问题。

当JVM运行时,某些选项可能会被禁用以提高安全性和稳定性。UnlockDiagnosticVMOptions参数可以用于解锁这些选项,以便可以在运行时使用它们来进行调试和诊断。

-XX:+UseCGroupMemoryLimitForHeap

实验性参数,用于让Xmx感知docker的memory limit

这个参数自JDK8u121加入,在java8,9,10中都可用,不过由于在JDK8u191后新增了容器支持开关-XX:UseContainerSupport,并且默认开启,建议使用UseContainerSupport参数

java11正式移除UseCGroupMemoryLimitForHeap,代码改动见8194086: Remove deprecated experimental flag UseCGroupMemoryLimitForHeap

其他参数

JDK8u191增加了这些参数:

  • MaxRAMPercentage 堆的最大值百分比。
  • InitialRAMPercentage 堆的初始化的百分比。
  • MinRAMPercentage 堆的最小值的百分比。

如果使用了-Xmx参数,则直接将MaxHeapSize(最大堆大小)等同于我们设置的-Xmx。


COPY FROM: