下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
現(xiàn)狀:系統(tǒng)運行一段時間后,速度開頭變慢,而且越來越嚴(yán)峻;FullGC過于頻繁,使得系統(tǒng)中斷次數(shù)越來越多;處理方法:在JVM中增加GC輸出,在tomcat/bin/catalina.sh中增加如下設(shè)置JAVA_OPTS=“$JAVA_OPTS -verbose:gc -Xloggc:/var/log/gc.log -XX:+PrintGCDetails-XX:+PrintGCTimeStamps-XX:+PrintHeapAtGC-XX:+PrintTenuringDistribution“,JVM會自動gc日志,格式如下:{HeapbeforeGCinvocations=35(full2):PSYoungGen total 1047552K, used 1046528K [0xb42a0000, 0xf42a0000,0xf42a0000)edenspace1046528K,100%used[0xb42a0000,0xf40a0000,0xf40a0000)fromspace1024K,0%used[0xf41a0000,0xf41a0000,0xf42a0000)to space1024K,0%used[0xf40a0000,0xf40a0000,0xf41a0000)PSOldGen total2097152K, used 277656K [0x342a0000, 0xb42a0000,0xb42a0000)objectspace2097152K,13%used[0x342a0000,0x451c6000,0xb42a0000)PSPermGen total 65536K, used 21366K [0x142a0000, 0x182a0000,0x342a0000)objectspace65536K,32%used[0x142a0000,0x1577d920,0x182a0000)333342.537:[GCDesiredsurvivorsize1048576bytes,newthreshold1(max15)[PSYoungGen: 1046528K->1024K(1047552K)] 1324184K->400132K(3144704K),0.2424250secs][Times:user=1.92sys=0.00,real=0.24secs]HeapafterGCinvocations=35(full2):PSYoungGen total 1047552K, used 1024K [0xb42a0000, 0xf42a0000,0xf42a0000)edenspace1046528K,0%used[0xb42a0000,0xb42a0000,0xf40a0000)fromspace1024K,100%used[0xf40a0000,0xf41a0000,0xf41a0000)to space1024K,0%used[0xf41a0000,0xf41a0000,0xf42a0000)PSOldGen total2097152K, used 399108K [0x342a0000, 0xb42a0000,0xb42a0000)objectspace2097152K,19%used[0x342a0000,0x4c861010,0xb42a0000)PSPermGen total 65536K, used 21366K [0x142a0000, 0x182a0000,0x342a0000)objectspace65536K,32%used[0x142a0000,0x1577d920,0x182a0000)}JVMHEAP的構(gòu)造如下:GC有兩種:rC:對于生成的對象,都放在n中;當(dāng)n布滿時〔小孩太多了C將old空間中;fullGColdfullGC。fullGCold,young里面大局部垃圾block。jmapJVMheap使用狀況:jmap-heap4306AttachingtoprocessID4306,pleasewait...Debuggerattachedsuccessfully.Servercompilerdetected.JVMversionis16.3-b01usingthread-localobjectallocation.ParallelGCwith8thread(s)HeapConfiguration:MinHeapFreeRatio=40MaxHeapFreeRatio=70MaxHeapSize =3221225472(3072.0MB)NewSize =4194304(4.0MB)MaxNewSize =4294901760(4095.9375MB)OldSize =4194304(4.0MB)NewRatio =2SurvivorRatio =1000PermSize =67108864(64.0MB)MaxPermSize =536870912(512.0MB)HeapUsage:PSYoungGenerationEdenSpace:capacity=1071644672(1022.0MB)used =662329344(631.646484375MB)free =409315328(390.353515625MB)61.80493976272023%usedFromSpace:capacity=1048576(1.0MB)used =1048576(1.0MB)free =0(0.0MB)100.0%usedToSpace:capacity=1048576(1.0MB)used =0(0.0MB)free =1048576(1.0MB)0.0%usedPSOldGenerationcapacity=2147483648(2048.0MB)used =713975824(680.9004058837891MB)free =1433507824(1367.099594116211MB)33.24709013104439%usedPSPermGenerationcapacity=67108864(64.0MB)used =21879232(20.86566162109375MB)free =45229632(43.13433837890625MB)32.602596282958984%usedMinorGCNewRatio來把握new空間的大小。FullGC比較耗時,對系統(tǒng)影響較大。假設(shè)覺察幾次FullGC后,內(nèi)存使用沒有降下來,則有可能存在內(nèi)存泄露:catgc.log|grep“FullGC“2581.257: [Full GC [PSYoungGen: 640K->0K(589248K)] [PSOldGen:664345K->207093K(699072K)] 664985K->207093K(1288320K) [PSPermGen:30828K->30828K(131072K)],1.2023230secs][Times:user=1.19sys=0.01,real=1.20secs]2929.640: [Full GC [PSYoungGen: 64K->0K(645824K)] [PSOldGen:676059K->185422K(699072K)] 676123K->185422K(1344896K) [PSPermGen:30962K->30962K(131072K)],1.0784410secs][Times:user=1.08sys=0.00,real=1.07secs]3465.263: [Full GC [PSYoungGen: 640K->0K(564096K)] [PSOldGen:676009K->208685K(699072K)] 676649K->208685K(1263168K) [PSPermGen:30985K->30985K(131072K)],1.2440760secs][Times:user=1.24sys=0.00,real=1.24secs]3765.206:[FullGC[PSYoungGen:640K->0K(387648K)][PSOldGen:656238K->260889K(725952K)] 656878K->260889K(1113600K) [PSPermGen:31005K->30805K(131072K)],1.7598360secs][Times:user=1.76sys=0.00,real=1.76secs]4006.283: [Full GC [PSYoungGen: 640K->0K(549568K)] [PSOldGen:641960K->418960K(905152K)] 642600K->418960K(1454720K) [PSPermGen:30818K->30818K(131072K)],2.3026830secs][Times:user=2.30sys=0.00,real=2.30secs]4545.212: [Full GC [PSYoungGen: 640K->0K(472023K)] [PSOldGen:879051K->207236K(699072K)] 879691K->207236K(1171072K) [PSPermGen:30854K->30854K(131072K)],1.2098150secs][Times:user=1.19sys=0.02,real=1.21secs]6052.607: [Full GC [PSYoungGen: 64K->0K(573568K)] [PSOldGen:682860K->155937K(699072K)] 682924K->155937K(1272640K) [PSPermGen:30890K->30890K(131072K)],0.8968940secs][Times:user=0.89sys=0.00,real=0.90secs]HPDiagnostics是一個比較好用的工具,可以診斷出執(zhí)行時間較長和頻繁的sql、執(zhí)行時間較長的方法,還可以跟蹤內(nèi)存的使用狀況以及對象的數(shù)量〔Jprofilertomcat格外慢,不知道現(xiàn)在性能怎樣〕設(shè)置步驟如下:tomcatHpDiagnosticsDiagnostics分析器使用在 tomcat 中 加 入 如 下 設(shè) 置 : JAVA_OPTS=“$JAVA_OPTS-javaagent:/opt/MercuryDiagnostics/JavaAgent/DiagnosticsAgent/lib/probeagent.jar-agentpath:/opt/MercuryDiagnostics/JavaAgent/DiagnosticsAgent/lib/x86-linux64/libjvmti.so“tomcat35000端口HPJavaAgentjavawebstart://server:35000即可連接FullGC后的對象數(shù)量,確定特別對象的數(shù)量。所以需要對內(nèi)部的規(guī)律有確定的了解,否則很難確定對象的數(shù)量存在特別。假設(shè)能確定到內(nèi)存泄露的對象,還需要確認(rèn)是哪個地方引用了這些對象,以至于無法釋放。通常需要留意的地方時一些Map、ThreadLocal、靜態(tài)變量等,web應(yīng)用中還需要留意sessionapplication中是否存在沒有去除的數(shù)據(jù)。分析代碼是一種方式,但是很多時候可能很難從代碼中定位。JVM自帶的工具jmap在這個時候可以派上大用場。使用如下命令可以生成dump信息:jmap-dump:live,format=b,file=heap20230114.bin3624Dumpingheapto/var/log/heap20230114.bin...Heapdumpfilecreatedjhatdump信息:jhat-J-mx1024mheap_snapshot.binReadingfromheap.bin...DumpfilecreatedFriDec3109:30:54CST2023Snapshotread,resolving...Resolving2474879objects...Chasing references, expect 494dots........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于畢業(yè)學(xué)生實習(xí)報告四篇
- 經(jīng)股肱橈尺動脈介入治療對比-袁晉青
- 北京小學(xué)科學(xué)教師學(xué)年工作總結(jié)大全
- 兒童臨時監(jiān)護(hù)協(xié)議書(2篇)
- 辦公場地出租合同模板
- 深圳商鋪租賃合同書
- 贈送別克商務(wù)轎車協(xié)議書
- 廠房租賃協(xié)議合同書范本
- 揚州地下停車位出租協(xié)議
- 八年級道德與法治下冊第二單元理解權(quán)利義務(wù)第四課公民義務(wù)第2框依法履行義務(wù)教案新人教版
- 2024年江西省三校生高職英語高考試卷
- 中國古代文學(xué)智慧樹知到期末考試答案章節(jié)答案2024年廣州大學(xué)
- 重慶市南岸區(qū)2022-2023學(xué)年五年級上學(xué)期期末語文試卷
- 現(xiàn)澆鋼筋混凝土整體式肋梁樓蓋結(jié)構(gòu)-課程設(shè)計
- 掛籃施工及安全控制連續(xù)梁施工安全培訓(xùn)課件
- 學(xué)生學(xué)習(xí)概覽StudentLearningProfile
- 小班數(shù)學(xué)《認(rèn)識1到10的數(shù)字》課件
- 手工花項目策劃書
- 服務(wù)器維保應(yīng)急預(yù)案
- 循環(huán)系統(tǒng)病癥的臨床思維
- 煙花爆竹經(jīng)營
評論
0/150
提交評論