JBoss 內(nèi)存溢出問題

一赁炎、背景介紹

公司對外提供了一個API系統(tǒng),提供了產(chǎn)品的搜索钾腺,查詢徙垫,價(jià)格以及訂單相關(guān)等功能,由我來負(fù)責(zé)開發(fā)維護(hù)放棒。這個系統(tǒng)部署在一個獨(dú)立的 JBoss 實(shí)例里姻报。大概從2018年2月以來,該系統(tǒng)不定時 down 機(jī)间螟。因?yàn)橥粋€服務(wù)器上還跑了另外兩個Jboss吴旋,一開始還以為是服務(wù)器物理內(nèi)存不夠,API系統(tǒng)掛了之后厢破,只是簡單地重啟了一下相關(guān)的Jboss荣瑟。最近將其中的一個Jboss遷移到別的服務(wù)器了,但是API系統(tǒng)還是會不定時地掛掉摩泪,于是特地安排了時間來跟蹤一下這個問題笆焰。

二、前期準(zhǔn)備

首先打開GC日志见坑,在Jboss的 bin目錄里面的 standalone.conf 文件里面的 JAVA_OPTS 行里面嚷掠,加上這兩個選項(xiàng): ?“-verbose.gc ?-Xloggc:/server/gc.log”;

接著鳄梅,打開OOM 時記錄 HeapDump的選項(xiàng)叠国。在 standalone.conf 文件里面的 JAVA_OPTS 行里面戴尸,加上這個選項(xiàng) ?“-XX:+HeapDumpOnOutOfMemoryError”孙蒙;

最后挎峦,重新啟動 jboss坦胶。等待下一次API系統(tǒng) down 機(jī)。

幸運(yùn)地(也可以說不幸)峭咒,重啟之后第三天纪岁,API系統(tǒng)又掛了幔翰。從服務(wù)器取回GC日志(/server/gc.log)遗增,還有內(nèi)存溢出HeapDump文件(java_pid14584.hprof, 在 bin 目錄下霍狰,文件名可能不是這個蚓耽,但是類似于這個)步悠。

三鼎兽、分析

1.?分析GC活動

使用?gcviewer?打開下載回來的?gc.log谚咬,發(fā)現(xiàn)GC方面沒有什么問題择卦,內(nèi)存占用挺正常的秉继。到最后down機(jī)前尚辑,都沒有發(fā)現(xiàn)GC異常杠茬。


2. 分析 HeapDump 文件

使用 Eclipse 的 MAT 工具打開下載回來的 ?java_pid14584.hprof 文件瓢喉,然后等待MAT分析完成灯荧。


打開 Leak Suspects哆窿,看看有哪些可疑的線程:


嗯挚躯?http-executor-threads 這個線程占用了 800多M的內(nèi)存码荔?點(diǎn) “See stacktrace” 去看看它的調(diào)用棧缩搅。


CommonDateUtil的getBetweenDates() 方法導(dǎo)致了異常硼瓣?先看看這個方法是干啥的


大略看了一下堂鲤,參數(shù)合理的話瘟栖,應(yīng)該沒有什么問題啊半哟。

再去看看內(nèi)存占用镜沽,這個占用了 800多M內(nèi)存的線程贱田,到底都存了些什么男摧?回到 Overview耗拓,點(diǎn)擊 “Histogram”乔询,看看各類占用的內(nèi)存


咦竿刁?怎么有個 ArrayList 占用了 800多M 的內(nèi)存食拜?右擊這一行负甸,選擇 ?“l(fā)ist objects” ? → ?“with outgoing references”呻待,看看這個 ArrayList 里面到底存了些什么蚕捉?


到了這個頁面报破,點(diǎn)擊展開那個 800多M的 ArrayList的 elementData充易。看看具體元素的內(nèi)容。因?yàn)樵?ArrayList 的內(nèi)容較多,展開的時間會比較長(我的I7-4800MQ /12G內(nèi)存控漠,也花了2分鐘)盐捷。


怎么都是日期類的字符串?這不是那個CommonDateUtil的getBetweenDates() 產(chǎn)生的日期字符串嗎?怎么加到了 2069-11-19? 死循環(huán)了嗎习霹?

三、解決辦法

1.?簡單解決

既然問題出在CommonDateUtil的getBetweenDates()?方法里爸吮,再加上一層限制,防止死循環(huán)就行了桐早。例如:只返回最多一年的日期字符串哄酝。

2.?根本解決

在API接口層次作限制,每次只能小批量返回一部分的價(jià)格搀军,例如說?31?天焚刺。

四、文中用到的工具

1. GcViewer

圖形化查看?JVM GC活動的工具匾委。1.33及之前版本可以使用JDK1.7運(yùn)行,1.34開始需要使用JDK1.8運(yùn)行。下載地址:?http://sourceforge.net/projects/gcviewer/

2. Eclipse Memory Analyzer (MAT)

多維度分析?HeapDump?文件的工具。由于?HeapDump?文件比較大,建議下載64位的版本來使用乳幸。下載地址:http://www.eclipse.org/mat/downloads.php

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瓶埋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子端姚,更是在濱河造成了極大的恐慌晕粪,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寄锐,死亡現(xiàn)場離奇詭異兵多,居然都是意外死亡尖啡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門剩膘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來衅斩,“玉大人,你說我怎么就攤上這事怠褐∥钒穑” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵奈懒,是天一觀的道長奠涌。 經(jīng)常有香客問我,道長磷杏,這世上最難降的妖魔是什么溜畅? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮极祸,結(jié)果婚禮上慈格,老公的妹妹穿的比我還像新娘。我一直安慰自己遥金,他們只是感情好浴捆,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著稿械,像睡著了一般选泻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上美莫,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天页眯,我揣著相機(jī)與錄音,去河邊找鬼茂嗓。 笑死餐茵,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的述吸。 我是一名探鬼主播忿族,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蝌矛!你這毒婦竟也來了道批?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤入撒,失蹤者是張志新(化名)和其女友劉穎隆豹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茅逮,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡璃赡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年判哥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碉考。...
    茶點(diǎn)故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡塌计,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出侯谁,到底是詐尸還是另有隱情锌仅,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布墙贱,位于F島的核電站热芹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏惨撇。R本人自食惡果不足惜伊脓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望串纺。 院中可真熱鬧丽旅,春花似錦、人聲如沸纺棺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽祷蝌。三九已至,卻和暖如春帆卓,著一層夾襖步出監(jiān)牢的瞬間巨朦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工剑令, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留糊啡,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓吁津,卻偏偏與公主長得像棚蓄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子碍脏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評論 2 348

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