隨筆 - 170  文章 - 536  trackbacks - 0
          <2007年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          我參與的團隊

          隨筆分類(103)

          搜索

          •  

          積分與排名

          • 積分 - 414766
          • 排名 - 135

          最新評論

          閱讀排行榜

          最近在把在 tomcat 5.5 上開發的項目 deploy 到 JBoss 4.2 上時,在操作一段時間就會出現 java.lang.OutOfMemoryError: PermGen space,開始以為是代碼中存在死循環的地方造成這樣的問題,但是后來發現,出問題的地方都是隨機的,并不是某一處造成這樣的問題出現,懷疑是內存泄露,通過增大 heap 內存的方法來嘗試,依然不行,但是同樣的問題卻并沒有在 tomcat 中出現過,難道是 JBoss 的問題?

          在網上做了一番搜索得到一些相關的內容。

          PermGen space的全稱是Permanent Generation space,是指內存的永久保存區域OutOfMemoryError: PermGen space從表面上看就是內存益出,解決方法也一定是加大內存。說說為什么會內存益出:這一部分用于存放Class和Meta的信息,Class在被 Load的時候被放入PermGen space區域,它和和存放Instance的Heap區域不同,GC(Garbage Collection)不會在主程序運行期對PermGen space進行清理,所以如果你的APP會LOAD很多CLASS的話,就很可能出現PermGen space錯誤。這種錯誤常見在web服務器對JSP進行pre compile的時候。

          改正方法,在 run.bat 中加入:-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

          因為項目中引用了很多的 jar 包,而這些 jar 包中的 class 信息會被 JBoss 的 class loader 加載到 PermGen space 區域,在 JVM 默認的情況下,該部分空間的大小只有 4M,在 jar 包非常多的情況下,顯然是不夠用的,所以通過 -XX:MaxPermSize=256m 指定最大值后即可解決問題。

          另外,如果 heap 內存不足出現 java.lang.OutOfMemoryError: Java heap space 時,可以通過 -Xmx512m 指定最大 heap 內存來解決這樣的問題。

          posted on 2007-06-17 20:13 steady 閱讀(16790) 評論(7)  編輯  收藏 所屬分類: 技術隨筆

          FeedBack:
          # re: JBoss deploy 出現 OutOfMemoryError : PermGen space 2007-06-18 10:22 luobohei
          遇到同樣問題正頭疼呢,試試看!  回復  更多評論
            
          # re: JBoss deploy 出現 OutOfMemoryError : PermGen space 2007-06-18 10:40 BeanSoft
          ... JVM 調優的資料, 使勁看看...  回復  更多評論
            
          # re: JBoss deploy 出現 OutOfMemoryError : PermGen space 2007-06-25 12:51 lizhiyang
          我在tomcat5.5下設置,發現MaxPermSize最大只能是75.能否再調大點呢,如何調?另外,tomcat是service方式啟動。  回復  更多評論
            
          # re: JBoss deploy 出現 OutOfMemoryError : PermGen space 2007-10-10 13:36 pirate
          我設置了為什么沒用?  回復  更多評論
            
          # re: JBoss deploy 出現 OutOfMemoryError : PermGen space 2010-05-04 10:51 kitlie
          問題好像解決,暫時沒有出現,感謝,支持!  回復  更多評論
            
          # re: JBoss deploy 出現 OutOfMemoryError : PermGen space 2010-08-24 10:52 greenhorn
          遇到同樣問題。。。看看能否解決  回復  更多評論
            
          # re: JBoss deploy 出現 OutOfMemoryError : PermGen space 2012-08-20 15:56 meShare2011
          Tomcat正在運行當中,是否可以刪除Work文件夾,會產生什么影響?變更Webapps目錄下應用程序的名稱,又會產生什么樣的影響?  回復  更多評論
            
          主站蜘蛛池模板: 鲁山县| 麻阳| 阜新市| 海城市| 肃南| 绥滨县| 灯塔市| 商河县| 姜堰市| 灌阳县| 宣威市| 鹤峰县| 成都市| 台南市| 囊谦县| 扎兰屯市| 梅河口市| 远安县| 益阳市| 罗江县| 瓮安县| 咸阳市| 宣威市| 无锡市| 炉霍县| 康定县| 怀来县| 吉安市| 盘锦市| 张家口市| 安泽县| 福海县| 南城县| 平谷区| 绥阳县| 阿勒泰市| 房山区| 长治市| 东丰县| 边坝县| 平泉县|