記一次利用mat排查線(xiàn)上服務(wù)jvm outOfMemory問(wèn)題

情景:周五的時(shí)候辖所,運(yùn)維突然發(fā)現(xiàn)平時(shí)正常運(yùn)行的服務(wù)重啟了擅笔,同時(shí)查看了日志,發(fā)現(xiàn)有g(shù)c outOfMemory的日志汹押,并且生成了當(dāng)時(shí)的dump文件矿筝,通知我有時(shí)間的話(huà)排查下問(wèn)題,是什么導(dǎo)致重啟的棚贾,平時(shí)都沒(méi)有這種情況窖维;

image.png

剛好這周事情少,有點(diǎn)時(shí)間妙痹,就開(kāi)始著手排查陈辱;

1.準(zhǔn)備mat軟件

首先從網(wǎng)上下載下mat軟件,我這里用的是mac OS版本的细诸,安裝完后沛贪,用命令行打開(kāi),具體方式可以自行百度震贵,同時(shí)從ftp上下載log文件以及dump文件
mac OS mat.app 下載鏈接:
鏈接: https://pan.baidu.com/s/1nMa_XqK_DPtd6GPz5PioOg 密碼: 7aur

image.png

可以通過(guò)上面的file->open file利赋,選擇自己的dump文件路徑,注意dump文件的格式是有要求的,否則打不開(kāi)猩系,我這里用的都是*.bin結(jié)尾的媚送;

2.使用Leak Suspects Report初步分析

打開(kāi)文件,后會(huì)跳出下面彈窗

image.png

選擇Leak Suspects Report然后點(diǎn)擊finish寇甸,等待軟件一段時(shí)間的解析后會(huì)出現(xiàn)以下界面:
image.png

咱們著重看自己相關(guān)的類(lèi)塘偎,翻到最下面可以看到e,也就是Problem Suspect5,點(diǎn)擊Details拿霉,出現(xiàn)以下界面

image.png

由上面圖片可以看到是ibatis相關(guān)操作導(dǎo)致的吟秩,百度查詢(xún)下class org.apache.ibatis.executor.result.DefaultResultHandler導(dǎo)致的相關(guān)問(wèn)題,發(fā)現(xiàn)它的作用是將statement執(zhí)行后的結(jié)果绽淘,轉(zhuǎn)換成對(duì)象列表涵防;

3.分析該對(duì)象是否存在強(qiáng)引用

如圖:
image.png

image.png

image.png

點(diǎn)擊查看其GC ROOT對(duì)象是由tomcat引用,由此可知沪铭,肯定是某一個(gè)接口導(dǎo)致查詢(xún)數(shù)據(jù)庫(kù)的數(shù)據(jù)量過(guò)大壮池,然后最終導(dǎo)致outOfMemory;

4.定位到最終問(wèn)題杀怠,即是哪條sql導(dǎo)致

在當(dāng)前頁(yè)面點(diǎn)擊按鈕


image.png

出現(xiàn)以下界面


image.png

這是根據(jù)Retained Heap 進(jìn)行從大到小排序后的結(jié)果椰憋;
從大到小,逐個(gè)打開(kāi)其中的內(nèi)容赔退,將里面的sql內(nèi)容復(fù)制出來(lái)橙依,然后去線(xiàn)上數(shù)據(jù)倉(cāng)庫(kù),進(jìn)行count查詢(xún),查看具體返回條數(shù)票编,這里我看到http-nio-8018-exec-2 線(xiàn)程中的sql執(zhí)行,查詢(xún)到了14W條數(shù)據(jù)卵渴,定位到是這條sql引起的outOfMemory慧域;

5.定位具體代碼

有了sql就好辦了,在項(xiàng)目中查詢(xún)到相關(guān)sql浪读,以及引用之處昔榴,發(fā)現(xiàn)一共有三個(gè)接口使用了,該方法碘橘,根據(jù)報(bào)錯(cuò)時(shí)間范圍和接口名去kibina中查詢(xún)相關(guān)接口的請(qǐng)求入?yún)⒒ザl(fā)現(xiàn)就是其中一個(gè)接口的入餐沒(méi)有傳入所需參數(shù),導(dǎo)致查詢(xún)出14W條數(shù)據(jù)痘拆,最終產(chǎn)生了outOfMemory仰禽;

具體解決方案的話(huà)就視業(yè)務(wù)而定了,最簡(jiǎn)單的方案就是如果該參數(shù)為空則返回參數(shù)異常纺蛆;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吐葵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子桥氏,更是在濱河造成了極大的恐慌温峭,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件字支,死亡現(xiàn)場(chǎng)離奇詭異凤藏,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)堕伪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)揖庄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人欠雌,你說(shuō)我怎么就攤上這事抠艾。” “怎么了桨昙?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵检号,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蛙酪,道長(zhǎng)齐苛,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任桂塞,我火速辦了婚禮凹蜂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己玛痊,他們只是感情好汰瘫,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著擂煞,像睡著了一般混弥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上对省,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天蝗拿,我揣著相機(jī)與錄音,去河邊找鬼蒿涎。 笑死哀托,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的劳秋。 我是一名探鬼主播仓手,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼玻淑!你這毒婦竟也來(lái)了俗或?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤岁忘,失蹤者是張志新(化名)和其女友劉穎辛慰,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體干像,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡帅腌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了麻汰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片速客。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖五鲫,靈堂內(nèi)的尸體忽然破棺而出溺职,到底是詐尸還是另有隱情,我是刑警寧澤位喂,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布浪耘,位于F島的核電站,受9級(jí)特大地震影響塑崖,放射性物質(zhì)發(fā)生泄漏七冲。R本人自食惡果不足惜佑刷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一构灸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧淋纲,春花似錦、人聲如沸掘鄙。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)操漠。三九已至收津,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間颅夺,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工蛹稍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吧黄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓唆姐,卻偏偏與公主長(zhǎng)得像拗慨,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子奉芦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348