溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何排查服務器的內(nèi)存泄露

發(fā)布時間:2021-11-15 16:50:38 來源:億速云 閱讀:387 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“如何排查服務器的內(nèi)存泄露”,在日常操作中,相信很多人在如何排查服務器的內(nèi)存泄露問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何排查服務器的內(nèi)存泄露”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

  • jps -l

    • 查看虛擬機屬于哪個進程

  • jstat -gcutil 20954 1000

    • 新生代Eden區(qū)(E,表示Eden)使用了28.30%(最后)的空間,

    • 兩個Survivor區(qū)(S0、S1,表示Survivor0、Survivor1)分別是0和8.93%,

    • 老年代(O,表示Old)使用了87.33%。

    • 程序運行以來共發(fā)生Minor GC(YGC,表示Young GC)101次,總耗時1.961秒,

    • 發(fā)生Full GC(FGC,表示Full GC)7次,F(xiàn)ull GC總耗時3.022秒,

    • 總的耗時(GCT,表示GC Time)為4.983秒。

    • 每1000毫秒查詢一次,一直查。

    • gcutil的意思是已使用空間站總空間的百分比。

    • 如何排查服務器的內(nèi)存泄露

    • 查詢結(jié)果表明:這臺服務器的

  • jmap -histo:live 20954

    • 可以看出HashTable中的元素有5000多萬,占用內(nèi)存大約1.5G的樣子。這肯定不正常。

    • live 是可選參數(shù),代表存活的對象

    • 如何排查服務器的內(nèi)存泄露

    • 紅線部分:

  • MAT 分析工具

    • Shortest Paths To the Accumulation Point表示GC root到內(nèi)存消耗聚集點的最短路徑

    • All Accumulated Objects by Class列舉了該對象所存儲的所有內(nèi)容

    • 為了找到內(nèi)存泄露,我獲取了兩個堆轉(zhuǎn)儲文件,兩個文件獲取時間間隔是一天

    • 如何排查服務器的內(nèi)存泄露

    • 如何排查服務器的內(nèi)存泄露

    • 對比兩個文件的對象,通過對比后的結(jié)果可以很方便定位內(nèi)存泄露。

    • MAT同時打開兩個堆轉(zhuǎn)儲文件,分別打開Histogram

    • 在下圖中方框1按鈕用于對比兩個Histogram,對比后在方框2處選擇Group By package,然后對比各對象的變化

    • 如何排查服務器的內(nèi)存泄露

    • -64的意思是,倆文件中該對象比對,前者比后者少了64個

    • 我內(nèi)存泄露位置是一個list,這個list只在這里一直不停的往里添加eventInfo對象,卻沒有釋放過。

    • 如何排查服務器的內(nèi)存泄露

    • 從中找你熟悉的代碼

    • 如何排查服務器的內(nèi)存泄露

    • 如何排查服務器的內(nèi)存泄露

    • 同時也會從首頁跳轉(zhuǎn)到Leak Suspects頁面

    • 如何排查服務器的內(nèi)存泄露

    • 如何排查服務器的內(nèi)存泄露

    • 如何排查服務器的內(nèi)存泄露

    • jmap -dump:format=b,file=<dumpfile.hprof> <pid>

    • MemoryAnalyzer.ini文件

    • Xmx參數(shù),該參數(shù)表示最大內(nèi)存占用量,默認為1024m

    • jmap比較籠統(tǒng),明顯的問題能檢查出來

    • 補充jmap在線分析

    • 修改MAT配置

    • 從jmap獲取 .hprof 文件

    • 選擇Leak Suspects Report, Finish就可以進入MAT分析頁面的首頁

    • 在首頁上比較有用的是Histogram和Leak Suspects

    • 點擊Leak Suspects會在堆轉(zhuǎn)儲文件同目錄內(nèi)生成一個Leak Suspects.zip文件,

    • 解壓該文件后可以通過瀏覽器打開分析結(jié)果

    • Leak Suspects頁面

    • 點擊Details進入詳情頁面

    到此,關(guān)于“如何排查服務器的內(nèi)存泄露”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI