JVM 常用參數(shù)

1.跟蹤參數(shù)

-verbose:gc or -XX:+PrintGC : 打開GC 開關(guān)

# 堆空間從 4M 回收到 374K 耗時(shí) ** 秒 
[GC 4790K->374K(15872K), 0.0001606 secs]
[GC 4790K->374K(15872K), 0.0001474 secs]
[GC 4790K->374K(15872K), 0.0001563 secs]
[GC 4790K->374K(15872K), 0.0001682 secs]

-XX:+PrintGCDetails : 打印GC詳細(xì)信息

-XX:+PrintGCTimeStamps : 打印CG發(fā)生的時(shí)間戳

[GC[DefNew: 4416K->0K(4928K), 0.0001897 secs] 4790K->374K(15872K), 0.0002232 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 

PrintGCDetails 在程序結(jié)束后的輸出

Heap
def new generation   total 13824K, used 11223K [0x27e80000, 0x28d80000, 0x28d80000)
eden space 12288K,  91% used [0x27e80000, 0x28975f20, 0x28a80000)
from space 1536K,   0% used [0x28a80000, 0x28a80000, 0x28c00000)
to   space 1536K,   0% used [0x28c00000, 0x28c00000, 0x28d80000)
tenured generation   total 5120K, used 0K [0x28d80000, 0x29280000, 0x34680000)
the space 5120K,   0% used [0x28d80000, 0x28d80000, 0x28d80200, 0x29280000)
compacting perm gen  total 12288K, used 142K [0x34680000, 0x35280000, 0x38680000)
the space 12288K,   1% used [0x34680000, 0x346a3a90, 0x346a3c00, 0x35280000)
ro space 10240K,  44% used [0x38680000, 0x38af73f0, 0x38af7400, 0x39080000)
rw space 12288K,  52% used [0x39080000, 0x396cdd28, 0x396cde00, 0x39c80000)
圖片.png

新生代分配了15M , 可用13M , GC from 區(qū) 和to 區(qū)的復(fù)制算法有關(guān)

-Xloggc:log/gc.log : 指定GC log的位置辱士,以文件輸出 正塌。
-XX:+PrintHeapAtGC : 每次一次GC后,都打印堆的詳細(xì)信息 缩滨。
-XX:+TraceClassLoading : 監(jiān)控類的加載 ,監(jiān)控每一個(gè)類的加載情況

[Loaded java.lang.Object from shared objects file]
[Loaded java.io.Serializable from shared objects file]
[Loaded java.lang.Comparable from shared objects file]
[Loaded java.lang.CharSequence from shared objects file]
[Loaded java.lang.String from shared objects file]
[Loaded java.lang.reflect.GenericDeclaration from shared objects file]
[Loaded java.lang.reflect.Type from shared objects file]

-XX:+PrintClassHistogram
按下Ctrl+Break后柏腻,打印類的信息:

num     #instances(實(shí)例數(shù)量)   #bytes(總大兄嚼鳌)  class name(類型)
----------------------------------------------
   1:        890617      470266000         [B
   2:        890643       21375432         java.util.HashMap$Node
   3:        890608       14249728         java.lang.Long
   4:            13        8389712         [Ljava.util.HashMap$Node;
   5:          2062         371680         [C
   6:           463          41904         java.lang.Class

2.堆棧的分配參數(shù)

-Xmx : 最大堆空間
–Xms : 最小堆空間(jvm會(huì)盡可能的維持在最小堆)

//獲取系統(tǒng)最大堆空間(Xmx 參數(shù)分配值)
Runtime.getRuntime().maxMemory()/1024.0/1024+"M"
//獲取系統(tǒng)可用堆空間
Runtime.getRuntime().freeMemory()/1024.0/1024+"M"
//獲取系統(tǒng)總共堆空間(當(dāng)前分配的, 當(dāng)前可用的)
Runtime.getRuntime().totalMemory()/1024.0/1024+"M"

-Xmn : 設(shè)置新生代大小
-XX:NewRatio : 新生代大小的百分比五嫂, 設(shè)置成 4 表示 新生代:老年代=1:4颗品,即年輕代占堆的1/5
-XX:SurvivorRatio : s0(from) 和s1(to) 區(qū)的百分比沃缘,8表示 兩個(gè)Survivor (s0+s1):eden=2:8,即一個(gè)Survivor占年輕代的1/10
-XX:OnOutOfMemoryError : OOM時(shí)導(dǎo)出堆信息到文件
-XX:+HeapDumpPath : 導(dǎo)出OOM的路徑
-XX:OnOutOfMemoryError : 發(fā)生OOM ,執(zhí)行一個(gè)腳本槐臀,比如郵件發(fā)送預(yù)警 , 重啟 等等

-XX:PermSize : 永久區(qū)大小
-XX:MaxPermSize : 永久區(qū)最大空間

-Xss : 棧大小水慨,通常只有幾百K ,決定函數(shù)調(diào)用深度得糜,局部變量晰洒。多跑線程應(yīng)該減少棧空間 欢顷。

# 棧溢出
java.lang.StackOverflowError

3.總結(jié)

1.需要根據(jù)實(shí)際情況調(diào)整java 堆 新生代和幸存代大小捉蚤。
2.官方推薦新生代占堆3/8 , 幸存代(s0+s1)占新生代1/10。
3.在OOM 時(shí)需dump出堆得信息到文件缆巧,確保排查問題布持,不然在開發(fā)環(huán)境難以復(fù)現(xiàn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末题暖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌唯绍,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枝誊,死亡現(xiàn)場離奇詭異况芒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)叶撒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門绝骚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人祠够,你說我怎么就攤上這事压汪。” “怎么了古瓤?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵止剖,是天一觀的道長。 經(jīng)常有香客問我湿滓,道長滴须,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任叽奥,我火速辦了婚禮扔水,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘朝氓。我一直安慰自己魔市,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布赵哲。 她就那樣靜靜地躺著待德,像睡著了一般。 火紅的嫁衣襯著肌膚如雪枫夺。 梳的紋絲不亂的頭發(fā)上将宪,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音橡庞,去河邊找鬼较坛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛扒最,可吹牛的內(nèi)容都是我干的丑勤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吧趣,長吁一口氣:“原來是場噩夢啊……” “哼法竞!你這毒婦竟也來了耙厚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤岔霸,失蹤者是張志新(化名)和其女友劉穎薛躬,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秉剑,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡泛豪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了侦鹏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诡曙。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖略水,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渊涝,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布胸私,位于F島的核電站,受9級(jí)特大地震影響岁疼,放射性物質(zhì)發(fā)生泄漏缆娃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一暖侨、第九天 我趴在偏房一處隱蔽的房頂上張望崇渗。 院中可真熱鬧,春花似錦宅广、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至资铡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間笤休,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國打工政基, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留闹啦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓荐健,卻偏偏與公主長得像,于是被迫代替她去往敵國和親江场。 傳聞我的和親對象是個(gè)殘疾皇子窖逗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容