原文网址:JVM调优--常用的设置_IT利刃出鞘的博客-CSDN博客
简介
本文介绍Java的JVM调优的常用的配置。
如果面试问到JVM的配置,你回答这几个常用的即可:初始堆大小、最大堆大小、栈的大小、打印完整堆栈信息、OOM时打印堆信息、FullGC时打印堆信息。
内存
- -Xms<size>
- 初始堆大小。
- -Xmx<size>
- 最大堆大小。
- 一般将Xms和Xmx设为一样的值,若-Xms比较小,又需要初始化很多对象,jvm就必须反复增加内存。一样大也可避免每次垃圾回收完成后JVM重新分配内存。
- -Xss<size>
- 线程的栈的大小。
- -XX:NewSize=n
- 设置年轻代大小
- -Xmn<size>
- 设置年轻代初始大小和最大大小。增大年轻代后,会减小年老代大小,此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
- 等效于: 使用 -XX:NewSize 设置初始化大小并使用-XX:MaxNewSize 设置最大大小。
- -XX:NewRatio=n
- 设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
- -XX:SurvivorRatio=n
- 年轻代中Eden区与两个Survivor区的比值。
- -XX:MetaspaceSize=n
- 元空间大小。
- -XX:MaxMetaspaceSize=n
- 最大元空间大小。
错误信息
-XX:-OmitStackTraceInFastThrow
默认情况下,OmitStackTraceInFastThrow 这个参数是开启的,即:-XX:+OmitStackTraceInFastThrow,此时如果程序多次发生了同一个异常,将不打印完整堆栈信息,只打印简略信息。以空指针异常为例,如果很多次空指针异常,将会打印以下信息:
java.lang.NullPointerException
java.lang.NullPointerException
java.lang.NullPointerException
java.lang.NullPointerException
这样就导致有时候排查问题非常不方便(很多研发对此无能为力),我们这里把它关闭,方法是:-XX:-OmitStackTraceInFastThrow。
上边是文章的部分内容,为便于维护,全文已迁移到此网址:JVM调优-常用的设置 - 自学精灵