真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

記一次JVM內(nèi)存溢出的處理過程-創(chuàng)新互聯(lián)

概要

筆者所管理的測試一臺業(yè)務(wù)服務(wù)器,近期經(jīng)常被反饋應(yīng)用卡頓并且出現(xiàn)過多次內(nèi)存溢出,本篇為對此問題的處理過程的記錄。
服務(wù)器環(huán)境采用Oracle JDK1.6,虛擬機(jī)為HosSpot,Web容器為Tomcat7。

處理過程

獲取堆內(nèi)存轉(zhuǎn)儲快照

在用戶反饋系統(tǒng)卡頓時,登陸服務(wù)器通過命令查看內(nèi)存使用情況

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括武昌網(wǎng)站建設(shè)、武昌網(wǎng)站制作、武昌網(wǎng)頁制作以及武昌網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,武昌網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到武昌省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
jps #獲取java的進(jìn)程ID
jstat -gc 31795 #31795為jps查詢到的進(jìn)程ID

得到內(nèi)存使用情況如下:

 S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT   
932032.0 932032.0  0.0    0.0   932096.0 932096.0 5592448.0  5592448.0  131072.0 60017.9     20   13.991  69    892.270  906.260

從結(jié)果可以得知,堆內(nèi)存已經(jīng)達(dá)到容量上限,并且在不斷的進(jìn)行FGC,所以應(yīng)用系統(tǒng)表現(xiàn)的特別卡頓。
通過jmap命令生成堆轉(zhuǎn)儲快照:

jmap -dump:format=b,file=heap.hprof 31795

出現(xiàn)以下提示則表示生成成功:

Attaching to process ID 31795, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 20.45-b01
Dumping heap to heap.hprof ...
Heap dump file created

分析堆轉(zhuǎn)儲快照

使用MemoryAnalyzer打開堆轉(zhuǎn)儲快照,但提示heap space的堆內(nèi)存溢出的異常:

An internal error occurred during: "Parsing heap dump from 'java_pid4259.hprof'".
Java heap space

修改配置MemoryAnalyzer.ini,調(diào)整堆內(nèi)存大小

-Xms1024m
-Xmx8192m

在MAT的Leak Suspects中,可以看到很詳細(xì)的信息,有兩個對象占用了大量的內(nèi)存。
記一次JVM內(nèi)存溢出的處理過程
通過查看線程信息發(fā)現(xiàn)為一個報(bào)表功能,該報(bào)表查詢的數(shù)據(jù)量太大,而且sql效率比較低。
記一次JVM內(nèi)存溢出的處理過程

優(yōu)化思路

  • 限制報(bào)表提取條件,盡量控制報(bào)表的大小在合理范圍內(nèi)
  • 超大的報(bào)表采用其他實(shí)現(xiàn)方式,例如通過定時任務(wù)將報(bào)表生成存放在指定文件服務(wù)器,由用戶自行下載
  • 本例中的報(bào)表會由jdbc的ResultSet 轉(zhuǎn)成最終的報(bào)表對象,中間會經(jīng)歷很多中間步驟,例如Vetcory、ArrayList等,盡量減少中間步驟
  • 優(yōu)化sql,盡快釋放對象,可以被GC進(jìn)行回收

文章題目:記一次JVM內(nèi)存溢出的處理過程-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/ceeccs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部