陌生系統故障排查記錄(一)-Confluence內存溢出

Confluence內存溢出故障排查記錄

在各開發團隊使用敏捷進行項目管理之后,公司又推出了jira+confluence的團隊協同開發管理平臺,但在最近卻接連出現confluence宕機的故障。因為有過類似排查解決java項目線上問題的經驗,所以應邀幫忙進行故障的排查,下面將具體過程做了記錄以便分享。

問題排查過程

已知信息

  • confluence服務器的IP、賬號和密碼
  • confluence宕機時間
  • confluence日?;臼褂媒涷?/li>

信息收集

1.登錄confluence服務器首先ps -ef|grep confluence查看了一下confluence的進程信息。獲取到了confluence目錄、啟動參數等重要信息:

  • jdk版本和JVM大?。?/usr/java/jdk1.8.0_66/jre/bin/java -Xms1024m -Xmx4096m
  • GC信息:-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:ParallelGCThreads=23 -XX:ConcGCThreads=6
  • 內存溢出會生成dump文件:-XX:+HeapDumpOnOutOfMemoryError

2.查看confluence下面各級目錄,重點關注log、conf、bin、data。又獲取到一些有用信息:

confluence其實就是一個基于tomcat的java web工程,雖然confluence不熟悉但是tomcat和java還是熟悉的領域

  • 查看gc日志,發現在confluence宕機之前,一直在頻繁的進行Full GC,但是jvm內存并沒有并回收,直到掛掉重啟,這應該是導致confluence宕機的直接原因


  • 查看tomcat的catalina.out日志,有OutOfMemoryError報錯,并且生成了heap dump文件

  • 啟動參數中沒有配置HeapDump文件生成目錄,默認會生成在程序啟動目錄bin下面,發現了java_pid889.hprof

HeapDump分析

經過上面信息收集,確認是存在內存溢出導致的,下面就是分析heap dump文件了,這里使用的是Eclipse Memory Analyzer,由于內存超4G需要下載64位MAT
1.修改MemoryAnalyzer.ini配置文件,dump文件大小為5.8g,所以調大MAT最大內存,文件結尾添加參數-Xmx12240m
2.使用MAT選擇打開java_pid889.hprof,等待分析完成查看分析報告

  • 分析報告餅圖中列出了主要占用內存的塊,并標注出四個可疑問題


    Leak Suspects
  • 查看Problem Suspect 1,是一個conversion線程,占用了20.62的JVM堆內存,點擊See stacktrace獲取線程的棧信息。通過類和方法名,大約可以猜測線程是confluence的負責文件的轉換的插件,在使用aspose的包生成縮略圖的時候,發生了內存泄漏。


  • 繼續查看Problem Suspect 2、3、4,內部都是占用了大量的com.aspose.imaging.internal.z.e[]對象,和Problem Suspect 1中占用的完全相同,所以能確認這四個可疑問題屬于同一個,下面是Problem Suspect 1中Object占用情況


    Problem Suspect 1 Object

Google

從上面分析后的結果,并結合平時使用confluence的經驗。confluence作為共享空間,可以上傳各類文檔,并且會自動在頁面生成文檔的縮略圖。故障原因應該用戶大量上傳文檔,第三方包aspose生成縮略圖的時候產生了內存溢出??梢赃M一步大膽的推測,aspose生成縮略圖的算法可能是將文件全部加載到內存,當文檔過大或者同時上傳文檔過多的情況下會導致內存溢出。根據tomcat日志找到記錄的http請求用戶名,通過社交手段(電話)確認用戶當時的確是在大量上傳文檔。
雖然原因找到了,但是問題并沒有得到解決,我一向認為善于使用google的程序員才是合格的程序員(當然還包括Stack Overflow、Github等),因為你遇到的99%的問題別人可能都遇到過。通過上面的分析得到了幾個關鍵字confluence、Conversion、OutOfMemoryError、aspose,相互組合幾次很快就查到了想要的結果。

最后大概描述一下故障產生的原因和影響范圍。在CONF-38233里就已經提出了File Conversion Service會導致CPU高和OutOfMemoryError,會影響5.4.2和5.7以上的版本,但atlassian公司在5.10.4版本只修復了CPU高的問題,在5.7以上版本仍然會存在可能會導致內存溢出的bug。在知識空間中提出了一些臨時的監控和解決辦法:

  • 打開文件轉換服務日志 ,進行監控
  • 增加JVM大小
  • 修改文件轉換服務線程數
  • 把文件轉換服務功能禁用

總結

不斷挖掘收集信息,篩選出有用部分,結合經驗抓住重點,關鍵是善用google。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,748評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,165評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,595評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,633評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,435評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,943評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,035評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,175評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,713評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,599評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,788評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,303評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,034評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,412評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,664評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,408評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,747評論 2 370

推薦閱讀更多精彩內容