JAVA 启动设置

本文介绍了JDK8中移除永久区后,如何使用Metaspace来存储类元数据,以及如何调整Metaspace的初始化大小、最大限制和GC策略。还讨论了相关参数如MaxMetaspaceSize、MinMetaspaceFreeRatio等对性能的影响。
摘要由CSDN通过智能技术生成

jdk8: 
由于之前启动java 应用总是如下提示:

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=64m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: MaxNewSize (262144k) is equal to or greater than the entire heap (262144k).  A new max generation size of 261632k will be used.
jinfo -flag Permsize PID
no such flag 'Permsize'
jinfo -flag MaxPermsize PID
no such flag 'MaxPermsize'

如是启动脚本做出如下调整:【jdk8 JVM 将移除永久区,使用本地内存来存储类元数据信息并称之为:元空

间(Metaspace)】

# 大于等于11版本
if [ $JavaVersion -ge 11 ] ; then
    # For G1
    JAVA_OPTS="-server -Xms1g -Xmx1g -XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:+UseGCOverheadLimit -XX:+ExplicitGCInvokesConcurrent $JAVA_OPTS"
  else
   # 小于 11版本       
   JAVA_OPTS="-server -Xms256m -Xmx256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=2 -XX:MaxTenuringThreshold=15 -XX:+DisableExplicitGC $JAVA_OPTS"
        fi

jinfo -flag MetaspaceSize PID
jinfo -flag MaxMetaspaceSize PID

jinfo -flag MinMetaspaceFreeRatio PID
jinfo -flag MaxMetaspaceFreeRatio PID
jinfo -flag MaxMetaspaceExpansion PID
jinfo -flag MinMetaspaceExpansion PID

a. MetaspaceSize
初始化的Metaspace大小,控制元空间发生GC的阈值。GC后,动态增加或降低MetaspaceSize。在默认情况下,这个值大小根据不同的平台在12M到20M浮动。使用Java -XX:+PrintFlagsInitial命令查看本机的初始化参数
b. MaxMetaspaceSize
限制Metaspace增长的上限,防止因为某些情况导致Metaspace无限的使用本地内存,影响到其他程序。在本机上该参数的默认值为4294967295B(大约4096MB)。
c. MinMetaspaceFreeRatio
当进行过Metaspace GC之后,会计算当前Metaspace的空闲空间比,如果空闲比小于这个参数(即实际非空闲占比过大,内存不够用),那么虚拟机将增长Metaspace的大小。默认值为40,也就是40%。
设置该参数可以控制Metaspace的增长的速度,太小的值导致Metaspace增长的缓慢,Metaspace的使用逐渐趋于饱和,可能会影响之后类的加载。而太大的值会导致Metaspace增长的过快,浪费内存。
d. MaxMetaspaceFreeRatio
当进行过Metaspace GC之后, 会计算当前Metaspace的空闲空间比,如果空闲比大于这个参数,那么虚拟机会释放Metaspace的部分空间。默认值为70,也就是70%。
e. MaxMetaspaceExpansion
Metaspace增长时的最大幅度。在本机上该参数的默认值为5452592B(大约为5MB)。
f. MinMetaspaceExpansion
Metaspace增长时的最小幅度。在本机上该参数的默认值为340784B(大约330KB为)。

Linux-Jconsole连接远程服务器_jconsole远程连接-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值