JVM调优参数详解(9大JVM调优参数)

JVM调优参数详解(9大JVM调优参数)-mikechen

JVM调优参数经常用于JVM性能调优,所以掌握好JVM调优参数很重要,下面我详解常用的JVM调优参数@mikechen

JVM调优参数详解(9大JVM调优参数)-mikechen

1.JVM初始分配的堆内存大小

参数:

-Xms

JVM初始分配的堆内存大小,默认是物理内存的1/64。

当然,你也可以初始设置,例如:

-Xms4g

指定JVM的初始内存为4G。

 

2. JVM最大分配的堆内存大小

JVM最大分配的堆内存大小,默认是物理内存的1/4。

参数:

-Xmx

示例:

-Xmx4g

堆内存最大值为4GB。

一般设置-Xms、-Xmx这两个参数相等,可以避免在每次GC 后动态调整堆的大小带来的影响。

 

3.设置新生代的内存大小

参数:

-Xmn

示例:

-Xmn2g

Xmn2g:设置年轻代大小为2G。

增大年轻代后,将会减小年老代大小,官方推荐配置为整个堆的3/8。

 

4.设置每个线程的栈内存大小

参数;

-Xss

示例:

Xss512k

在相同物理内存下,减小这个值能生成更多的线程,但是操作系统对一个进程内的线程数还是有限制的,不能无限生成。

 

5.调整新生代和老年代的比例

参数:

-XX:NewRatio

示例:

-XX:NewRatio=4

设置为4,则年轻代与年老代所占比值为1:4,如果设置了-Xmn的情况下,该参数是不需要在设置的。

 

8.调整Eden区和Survivor区的比例

XX:SurvivorRatio 用于设置新生代中 survivor 空间(from/to)和 eden 空间的大小比例。

参数:

-XX:SurvivorRatio

示例:

-XX:SurvivorRatio=8

设置SurvivorRatio为8,表示Eden区和Survivor区的比例为8:1。

 

9.在内存溢出错误发生时自动生成堆转储文件

参数:

-XX:+HeapDumpOnOutOfMemoryError

内存溢出错误发生时自动生成堆转储文件,以便后续分析。

以上就是常用的JVM调优参数详解,更多JVM请查看:JVM(Java虚拟机)从0到1全部合集

作者简介

陈睿|mikechen,10年+大厂架构经验,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法