-Xms
初始堆大小裁蚁。只要啟動(dòng)串塑,就占用的堆大小舰讹。
-Xmx
最大堆大小。java.lang.OutOfMemoryError:Java heap這個(gè)錯(cuò)誤可以通過(guò)配置-Xms和-Xmx參數(shù)來(lái)設(shè)置狸相。
-Xss
棧大小分配薛匪。棧是每個(gè)線程私有的區(qū)域,通常只有幾百K大小脓鹃,決定了函數(shù)調(diào)用的深度逸尖,而局部變量、參數(shù)都分配到棧上将谊。
當(dāng)出現(xiàn)大量局部變量,遞歸時(shí)渐白,會(huì)發(fā)生椬鹋ǎ空間OOM(java.lang.StackOverflowError)之類(lèi)的錯(cuò)誤。
-XX:NewSize
設(shè)置新生代大小的絕對(duì)值纯衍。
-XX:NewRatio
設(shè)置年輕代和年老代的比值栋齿。比如設(shè)置為3,則新生代:老年代=1:3,新生代占總heap的1/4瓦堵。
-XX:SurvivorRatio
年輕代中Eden區(qū)與兩個(gè)Survivor區(qū)的比值基协。注意,Survivor區(qū)有form和to兩個(gè)菇用。比如設(shè)置為8時(shí),那么eden:form:to=8:1:1。
-XX:MetaspaceSize
jvm8取消了設(shè)置持久代腿准,轉(zhuǎn)而使用了元空間鸟废。如果沒(méi)有指定的話,元空間會(huì)根據(jù)應(yīng)用程序運(yùn)行時(shí)的需要?jiǎng)討B(tài)地調(diào)整大小
-XX:MaxMetaspaceSize
設(shè)置元空間的最大值卦绣,默認(rèn)是沒(méi)有上限的耐量,也就是說(shuō)你的系統(tǒng)內(nèi)存上限是多少它就是多少
-XX:HeapDumpOnOutOfMemoryError
發(fā)生OOM時(shí)轉(zhuǎn)儲(chǔ)堆到文件,這是一個(gè)非常好的診斷方法滤港。
-XX:HeapDumpPath
導(dǎo)出堆的轉(zhuǎn)儲(chǔ)文件路徑廊蜒。
-XX:OnOutOfMemoryError
OOM時(shí),執(zhí)行一個(gè)腳本溅漾,比如發(fā)送郵件報(bào)警山叮,重啟程序,后面跟著一個(gè)腳本的路徑樟凄。
JVM7 常用參數(shù)
-XX:PermSize
設(shè)置持久代初始化大小聘芜。-XX:MaxPermSize
設(shè)置持久代大小。java.lang.OutOfMemoryError:PermGen space 這個(gè)OOM錯(cuò)誤需要合理調(diào)大PermSize和MaxPermSize大小缝龄。