电竞比分网-中国电竞赛事及体育赛事平台

分享

解決Tomcat應(yīng)用的內(nèi)存溢出問題 - Tomcat - Java - JavaEye論壇

 squarecome 2010-12-31

維護(hù)一個(gè)老系統(tǒng),發(fā)現(xiàn)有java.lang.OutOfMemoryError: Java heap space的情況,內(nèi)存溢出,以下是大致的解決過程:

1.安裝JProfiler,并配置成監(jiān)控本地的tomcat

2.修改catalina.bat,添加參數(shù): set JAVA_OPTS= -Xms768m -Xmx1024m -verbose:gc -Xloggc:../logs/gclog.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+HeapDumpOnOutOfMemoryError %JAVA_OPTS%

3.使用JProfiler在Tomcat的bin目錄下創(chuàng)建的啟動(dòng)腳本startup_jprofiler.bat重啟tomcat

4.運(yùn)行JProfiler觀察內(nèi)存狀況,未發(fā)現(xiàn)問題

5.第二天突然發(fā)現(xiàn)Tomcat再次出現(xiàn)內(nèi)存溢出,Tomcat的bin目錄下自動(dòng)生成了java_pid107932.hprof文件,將此文件下載到本地,以便分析。

6.下載Memory Analyzer工具,然后打開該hprof文件進(jìn)行分析,發(fā)現(xiàn)是SmartUpload的問題:com.jspsmart.upload.Files占用內(nèi)存1G多。

7.用Apache的上傳組件替換掉smartupload,目前沒有發(fā)現(xiàn)問題

 

附上Memory Analyzer分析的圖片:

 

Leak Suspects顯示,有一個(gè)東西占了1007.9M的內(nèi)存:

內(nèi)存狀態(tài)圖1

 

 

 點(diǎn)擊底部的Details鏈接,發(fā)現(xiàn)是com.jspsmart.upload.Files占用內(nèi)存最多:

內(nèi)存狀態(tài)圖2

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多