JVM分析
在運(yùn)行java進(jìn)程是,可以通過jps命令查看進(jìn)程PID,使用java的同居jmap命令可以得到j(luò)vm的dump文件;
在網(wǎng)上找了兩種方式獲取dump文件
獲取JVM的dump文件的兩種方式:轉(zhuǎn)載來源https://www.cnblogs.com/liu-ke/p/6622350.html【流柯】
1. JVM啟動(dòng)時(shí)增加兩個(gè)參數(shù):
#出現(xiàn) OOME 時(shí)生成堆 dump: -XX:+HeapDumpOnOutOfMemoryError #生成堆文件地址: -XX:HeapDumpPath=/home/liuke/jvmlogs/?2. 發(fā)現(xiàn)程序異常前通過執(zhí)行指令,直接生成當(dāng)前JVM的dmp文件,6214是指JVM的進(jìn)程號(hào)
jmap -dump:format=b,file=serviceDump.dat 6214?由于第一種方式是一種事后方式,需要等待當(dāng)前JVM出現(xiàn)問題后才能生成dmp文件,實(shí)時(shí)性不高,第二種方式在執(zhí)行時(shí),JVM是暫停服務(wù)的,所以對(duì)線上的運(yùn)行會(huì)產(chǎn)生影響。所以建議第一種方式。
分析dump文件?:轉(zhuǎn)載來源https://blog.csdn.net/lipc_/article/details/52034743【JVM性能調(diào)優(yōu)之生成堆的dump文件】,這里面講了一些分析和優(yōu)化,可以多看看
了解有下面幾種工具可以打開該文件:
?使用這些工具時(shí)為了確保加載速度,建議設(shè)置最大內(nèi)存為6G。據(jù)說,這些工具都無法直觀地觀察到內(nèi)存泄漏,Visual VM雖能觀察到對(duì)象大小,但看不到調(diào)用堆棧;HeapAnalyzer雖然能看到調(diào)用堆棧,卻無法正確打開一個(gè)3G的文件。因此,我們又選用了Eclipse專門的靜態(tài)內(nèi)存分析工具:Mat。
?3.分析內(nèi)存泄漏
? 通過Mat我們能清楚地看到,哪些對(duì)象被懷疑為內(nèi)存泄漏,哪些對(duì)象占的空間最大及對(duì)象的調(diào)用關(guān)系。通過Mat或JMX我們還可以分析線程狀態(tài),可以觀察到線程被阻塞在哪個(gè)對(duì)象上,從而判斷系統(tǒng)的瓶頸。
轉(zhuǎn)載于:https://www.cnblogs.com/TheoryDance/p/10641648.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
- 上一篇: 如何用php开发oa系统,oa系统怎么使
- 下一篇: centos6.8安装docker