Java容器相关参数随记
命令随记
查看系统中有哪些java进程,命令 jps
查看指定java进程占用的内存情况,命令 jmap -heap ${PID}
查看本机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: