熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

巧解Tomcat中JVM內存溢出問題

2013-11-23 18:39:46  來源: Java核心技術 

  你對Tomcat 的JVM內存溢出問題的解決方法是否了解這裡和大家分享一下相信本文介紹一定會讓你有所收獲

  tomcat 的JVM內存溢出問題的解決

  最近在熟悉一個開發了有幾年的項目需要把數據庫從mysql移植到oracle首先把jdbc的連接指向mysql打包放到tomcat裡面可以跑起來沒有問題可是當把jdbc連接指向oracle的時候tomcat就連續拋javalangOutOfMemoryError的錯誤上網google了一下了解了一下tomcat的運行機制也解決了問題share出來以備查下面有幾種JVM內存溢出的現象和解決方法請看詳細介紹

  JVM內存溢出現象提示一javalangOutOfMemoryError:Javaheapspace

  解釋

  Heapsize設置

  JVM堆的設置是指java程序運行過程中JVM可以調配使用的內存空間的設置JVM在啟動的時候會自動設置Heapsize的值其初始空間(即Xms)是物理內存的/最大空間(Xmx)是物理內存的/可以利用JVM提供的XmnXmsXmx等選項可進行設置Heapsize的大小是YoungGeneration和TenuredGeneraion之和

  提示在JVM中如果%的時間是用於GC且可用的Heapsize不足%的時候將拋出此異常信息

  提示HeapSize最大不要超過可用物理內存的%一般的要將Xms和Xmx選項設置為相同Xmn為/Xmx值

  解決方法

  手動設置Heapsize

  修改TOMCAT_HOME/bin/catalinabatechoUsingCATALINA_BASE:$CATALINA_BASE上面加入以下行

  Java代碼

  


    setJAVA_OPTS=%JAVA_OPTS%server
    XmsmXmxmXX:MaxNewSize=
    setJAVA_OPTS=%JAVA_OPTS%server
    XmsmXmxmXX:MaxNewSize=

  或修改catalinash

  在echoUsingCATALINA_BASE:$CATALINA_BASE上面加入以下行 

  


    JAVA_OPTS=$JAVA_OPTSserverXmsm  
    XmxmXX:MaxNewSize=m  

  JVM內存溢出現象提示二javalangOutOfMemoryError:PermGenspace

  原因

  PermGenspace的全稱是PermanentGenerationspace是指內存的永久保存區域這塊內存主要是被JVM存放Class和Meta信息的Class在被Loader時就會被放到PermGenspace中它和存放類實例(Instance)的Heap區域不同GC(GarbageCollection)不會在主程序運行期對PermGenspace進行清理所以如果你的應用中有很CLASS的話就很可能出現PermGenspace錯誤這種錯誤常見在web服務器對JSP進行precompile的時候如果你的WEBAPP下都用了大量的第三方jar其大小超過了jvm默認的大小(M)那麼就會產生此錯誤信息了

  解決方法

  手動設置MaxPermSize大小

  修改TOMCAT_HOME/bin/catalinabat(Linux下為catalinash)在Java代碼
echoUsingCATALINA_BASE:$CATALINA_BASE上面加入以下行 

  


    setJAVA_OPTS=%JAVA_OPTS%server
    XX:PermSize=MXX:MaxPermSize=
     

  echoUsingCATALINA_BASE:$CATALINA_BASE上面加入以下行 

  


    setJAVA_OPTS=%JAVA_OPTS%server  
    XX:PermSize=MXX:MaxPermSize=

  catalinash下為

  Java代碼 

  


    JAVA_OPTS=$JAVA_OPTSserver  
    XX:PermSize=MXX:MaxPermSize=m  
    JAVA_OPTS=$JAVA_OPTSserver  
    XX:PermSize=MXX:MaxPermSize=m  


From:http://tw.wingwit.com/Article/program/Java/hx/201311/25540.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.