JVM调优参数经常用于JVM性能调优,所以掌握好JVM调优参数很重要,下面我详解常用的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面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》