-Xms
初始堆大小。只要启动,就占用的堆大小。
-Xmx
最大堆大小。java.lang.OutOfMemoryError:Java heap这个错误可以通过配置-Xms和-Xmx参数来设置。
-Xss
栈大小分配。栈是每个线程私有的区域,通常只有几百K大小,决定了函数调用的深度,而局部变量、参数都分配到栈上。
当出现大量局部变量,递归时,会发生栈空间OOM(java.lang.StackOverflowError)之类的错误。
-XX:NewSize
设置新生代大小的绝对值。
-XX:NewRatio
设置年轻代和年老代的比值。比如设置为3,则新生代:老年代=1:3,新生代占总heap的1/4。
-XX:SurvivorRatio
年轻代中Eden区与两个Survivor区的比值。注意,Survivor区有form和to两个。比如设置为8时,那么eden:form:to=8:1:1。
-XX:MetaspaceSize
jvm8取消了设置持久代,转而使用了元空间。如果没有指定的话,元空间会根据应用程序运行时的需要动态地调整大小
-XX:MaxMetaspaceSize
设置元空间的最大值,默认是没有上限的,也就是说你的系统内存上限是多少它就是多少
-XX:HeapDumpOnOutOfMemoryError
发生OOM时转储堆到文件,这是一个非常好的诊断方法。
-XX:HeapDumpPath
导出堆的转储文件路径。
-XX:OnOutOfMemoryError
OOM时,执行一个脚本,比如发送邮件报警,重启程序,后面跟着一个脚本的路径。
JVM7 常用参数
-XX:PermSize
设置持久代初始化大小。-XX:MaxPermSize
设置持久代大小。java.lang.OutOfMemoryError:PermGen space 这个OOM错误需要合理调大PermSize和MaxPermSize大小。