JVM参数踩坑

 

jinfo -flags pid 查看JVM的控制参数

 

几个重要的参数:

-Xms: JVM初始堆内存

-Xmx:JVM最大堆内存

-NewRatio : JVM老生代:新生代的比例

-MaxNewSize: 新生代最大可申请内存

 

-MinHeapFreeRatio = 40  空闲比例小于40%,也就是内存使用达到70%,触发扩容
-MaxHeapFreeRatio = 70  空闲比例大于70%,也就是内存使用低于30%,触发缩容

 

虽然JVM没有可以配置的形如 MaxOldSize,但其实潜在的: MaxOldSize = 1 - MaxNewSize

1、JVM启动后,按照Xms申请初始内存。

2、初始申请时,需要同时保证 新生代、老生代都不超过对应的最大值。

3、根据老生代能申请的最大值,和NewRatio得到新生代的值。

4、在参数设置不合理时,容易出现老生代触顶,从而导致扩容失败,而浪费很多内存。

5、只有初始状态,满足NewRatio,后续扩容后,这个值不一定时刻满足,所以其优先级略低。

 

posted @ 2022-09-13 19:31  qsz_052  阅读(66)  评论(0)    收藏  举报