一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - JAVA程序內存溢出問題原因分析

JAVA程序內存溢出問題原因分析

2019-12-20 14:40liuzx32 JAVA教程

這篇文章主要介紹了JAVA程序內存溢出問題原因,較為詳細的分析java導致程序內存溢出的原因與解決方法,需要的朋友可以參考下

本文較為詳細的分析了JAVA程序內存溢出問題原因。分享給大家供大家參考。具體如下:

遇到一個線上系統報 java.lang.OutOfMemoryError: PermGen space 錯誤,需要定位一下問題。很久之前到時弄過這個,現在還真有點不記得了,但這個真的是一個非常有意思的問題,值得好好研究一下。首先第一反應當然是加上-XX:+PrintGCDetails參數來看具體的GC日志,但是由于程序是tomcat啟動的,擔心里面封裝的東西太多不好定位,既然在windows下面,所以還是借助可視化工具好了。
然后我們來看一下這個錯誤的產生原因,在網上找到一段解釋,說的很不錯,貼過來借用一下:)
 PermGen space的全稱是Permanent Generation space,是指內存的永久保存區域,這塊內存主要是被JVM存放Class和Meta信息的,Class在被Loader時就會被放到PermGen space中,它和存放類實例(Instance)的Heap區域不同,GC(Garbage Collection)不會在主程序運行期對PermGen space進行清理,所以如果你的應用中有很CLASS的話,就很可能出現PermGen space錯誤,這種錯誤常見在web服務器對JSP進行pre compile的時候。如果你的WEB APP下都用了大量的第三方jar, 其大小超過了jvm默認的大小(4M)那么就會產生此錯誤信息了。
那么我們先加大PermGen的初始內存大小:

linux下在catalina.sh文件的開頭加上:

復制代碼代碼如下:
JAVA_OPTS="-Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m"

 

windows下在catalina.bat的文件開頭加上:

復制代碼代碼如下:
set JAVA_OPTS=-Xms1024m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=256m

 

接著我們還是用可視化的內存查看工具來定位一下具體的問題。對于jdk6首選當然是自帶的工具啦,比較常用的有jconsole和jvisualvm(使用后發現后者更強大,因為有豐富的插件支持)。這次又遇到一個比較詭異的問題,就是分析工具打開后居然找不到tomcat進程(事后發現居然啟動的是jre,改成jdk應該就可以了)。

既然本地不讓連,我就遠程連接得了,打開JMX即可。
和上面一樣,在catalina.sh或catalina.bat文件的開頭的JAVA_OPTS里面加上

復制代碼代碼如下:
-Djava.rmi.server.hostname=192.168.1.101 -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

 

啟動程序以后用netstat查看一下端口是否正確打開,以確保遠程可以連接上。
我這里偷懶了下,把authenticate關掉了,要是打開需要設置一些權限的東西,比較麻煩。這個設置在我本地的PC機上生效,但是在服務器上居然不行,可能裝了什么軟件把端口給封了,所以我只好再犯下賤,把端口改成1000。打開jvisualvm,點擊file -> add JMX connection,然后加上localhost:1000就連上了。

等連上程序以后,觀察一段時間的內存變化狀況,我重點看了下Perm的情況,一直穩定在94m的樣子,運行一天一切正常??赡苁侵霸O置Perm內存大小沒有生效,因為Perm默認初始化是16m,最大是64m,而實際占用量確實有可能導致這個問題,從目前的現象來看應該是不會再出現這個問題了。如果需要更進一步定位問題,還可以使用btrace去查看某個方法具體被調用的地方。這樣可以定位到某些方法是否按預期執行。

希望本文所述對大家的java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 四川一级毛片 | 美女扒开屁股让我桶免费 | 91庥豆果冻天美精东蜜桃传媒 | 97porm自拍视频区原创 | 亚洲色域网 | 午夜影院在线免费观看 | 亚洲欧美精品一区天堂久久 | 免费欧美日韩 | 国产123区在线视频观看 | 国产麻豆精品原创 | 男生同性啪视频在线观看 | jux539原千岁在线播放 | 菠萝视频污| 欧美在线观看视频一区 | 99久久九九| 欧美一区二区日韩一区二区 | 高h全肉动漫在线观看免费 高h辣h双处全是肉军婚 | 国产成人精品777 | 忘忧草高清 | 亚洲精品久久中文字幕 | 91正在 播放 | free性泰国女人hd | 国产精品永久免费自在线观看 | 高清一区| 私人chinese beauty| 西西人体大胆77777视频 | 久久精品国产欧美日韩99热 | 国语精彩对白2021 | 国产精品久久久久久久久 | 三级理论在线播放大全 | 波多野结衣不卡 | 亚洲视频精选 | 天堂69亚洲精品中文字幕 | 小柔的性放荡羞辱日记 | 国产精品久久久久一区二区三区 | xxxxx性bbbbb欧美 | 小早川怜子亚洲综合中文字幕 | 公翁的舌尖研磨她的花蒂小说 | 国产精品麻豆 | 和岳m的小说 | 四虎精品在线视频 |