隨筆 - 170  文章 - 536  trackbacks - 0
          <2012年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          我參與的團(tuán)隊(duì)

          隨筆分類(103)

          搜索

          •  

          積分與排名

          • 積分 - 414768
          • 排名 - 135

          最新評(píng)論

          閱讀排行榜

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

          在網(wǎng)上做了一番搜索得到一些相關(guān)的內(nèi)容。

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

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

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

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

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

          FeedBack:
          # re: JBoss deploy 出現(xiàn) OutOfMemoryError : PermGen space 2007-06-18 10:22 luobohei
          遇到同樣問題正頭疼呢,試試看!  回復(fù)  更多評(píng)論
            
          # re: JBoss deploy 出現(xiàn) OutOfMemoryError : PermGen space 2007-06-18 10:40 BeanSoft
          ... JVM 調(diào)優(yōu)的資料, 使勁看看...  回復(fù)  更多評(píng)論
            
          # re: JBoss deploy 出現(xiàn) OutOfMemoryError : PermGen space 2007-06-25 12:51 lizhiyang
          我在tomcat5.5下設(shè)置,發(fā)現(xiàn)MaxPermSize最大只能是75.能否再調(diào)大點(diǎn)呢,如何調(diào)?另外,tomcat是service方式啟動(dòng)。  回復(fù)  更多評(píng)論
            
          # re: JBoss deploy 出現(xiàn) OutOfMemoryError : PermGen space 2007-10-10 13:36 pirate
          我設(shè)置了為什么沒用?  回復(fù)  更多評(píng)論
            
          # re: JBoss deploy 出現(xiàn) OutOfMemoryError : PermGen space 2010-05-04 10:51 kitlie
          問題好像解決,暫時(shí)沒有出現(xiàn),感謝,支持!  回復(fù)  更多評(píng)論
            
          # re: JBoss deploy 出現(xiàn) OutOfMemoryError : PermGen space 2010-08-24 10:52 greenhorn
          遇到同樣問題。。。看看能否解決  回復(fù)  更多評(píng)論
            
          # re: JBoss deploy 出現(xiàn) OutOfMemoryError : PermGen space 2012-08-20 15:56 meShare2011
          Tomcat正在運(yùn)行當(dāng)中,是否可以刪除Work文件夾,會(huì)產(chǎn)生什么影響?變更Webapps目錄下應(yīng)用程序的名稱,又會(huì)產(chǎn)生什么樣的影響?  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 桦甸市| 泰宁县| 信宜市| 泽库县| 从江县| 六安市| 开阳县| 阿克苏市| 南澳县| 防城港市| 车险| 清徐县| 绥芬河市| 来安县| 汽车| 景泰县| 晋宁县| 永昌县| 雷州市| 新沂市| 银川市| 会东县| 鹤岗市| 旬邑县| 当涂县| 清水县| 漳州市| 扶风县| 苏尼特右旗| 土默特右旗| 林芝县| 鄂托克前旗| 云南省| 双辽市| 邹城市| 开封县| 枝江市| 通江县| 文山县| 江津市| 湖北省|