<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA—咖啡館

    ——?dú)g迎訪(fǎng)問(wèn)rogerfan的博客,常來(lái)《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術(shù),交流工作經(jīng)驗(yàn),分享JAVA帶來(lái)的快樂(lè)!本網(wǎng)站部分轉(zhuǎn)載文章,如果有版權(quán)問(wèn)題請(qǐng)與我聯(lián)系。

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

    常見(jiàn)的內(nèi)存溢出有以下兩種:

    java.lang.OutOfMemoryError: PermGen space

    java.lang.OutOfMemoryError: Java heap space

     

    ---------------------------------------------------------

    這里以tomcat環(huán)境為例,其它WEB服務(wù)器如jboss,weblogic等是同一個(gè)道理。


    一、java.lang.OutOfMemoryError: PermGen space

    PermGen space的全稱(chēng)是Permanent Generation space,是指內(nèi)存的永久保存區(qū)域,
    這塊內(nèi)存主要是被JVM存放Class和Meta信息的,Class在被Loader時(shí)就會(huì)被放到PermGen space中,
    它和存放類(lèi)實(shí)例(Instance)的Heap區(qū)域不同,GC(Garbage Collection)不會(huì)在主程序運(yùn)行期對(duì)
    PermGen space進(jìn)行清理,所以如果你的應(yīng)用中有很多CLASS的話(huà),就很可能出現(xiàn)PermGen space錯(cuò)誤,
    這種錯(cuò)誤常見(jiàn)在web服務(wù)器對(duì)JSP進(jìn)行pre compile的時(shí)候。如果你的WEB APP下都用了大量的第三方j(luò)ar, 其大小
    超過(guò)了jvm默認(rèn)的大小(4M)那么就會(huì)產(chǎn)生此錯(cuò)誤信息了。
    解決方法: 手動(dòng)設(shè)置MaxPermSize大小
    建議:將相同的第三方j(luò)ar文件移置到tomcat/shared/lib目錄下,這樣可以達(dá)到減少jar 文檔重復(fù)占用內(nèi)存的目的。

     

    二、java.lang.OutOfMemoryError: Java heap space
    JVM堆的設(shè)置是指java程序運(yùn)行過(guò)程中JVM可以調(diào)配使用的內(nèi)存空間的設(shè)置.JVM在啟動(dòng)的時(shí)候會(huì)自動(dòng)設(shè)置Heap size的值,
    其初始空間(即-Xms)是物理內(nèi)存的1/64,最大空間(-Xmx)是物理內(nèi)存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等選項(xiàng)可
    進(jìn)行設(shè)置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。
    提示:在JVM中如果98%的時(shí)間是用于GC且可用的Heap size 不足2%的時(shí)候?qū)伋龃水惓P畔ⅰ?br /> 提示:Heap Size 最大不要超過(guò)可用物理內(nèi)存的80%,一般的要將-Xms和-Xmx選項(xiàng)設(shè)置為相同,而-Xmn為1/4的-Xmx值。
    解決方法:手動(dòng)設(shè)置Heap size

    ----------------------------------------------------------

     

    Linux下修改JVM內(nèi)存大小:

    要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前 。注意引號(hào)要帶上,紅色的為新添加的.

    # OS specific support.  $var _must_ be set to either true or false.
    JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"
    cygwin=false

     

    windows下修改JVM內(nèi)存大小:

    情況一:解壓版本的Tomcat, 要通過(guò)startup.bat啟動(dòng)tomcat才能加載配置

    要添加在tomcat 的bin 下catalina.bat 里

    rem Guess CATALINA_HOME if not defined
    set CURRENT_DIR=%cd%后面添加,紅色的為新添加的.

    set JAVA_OPTS=-Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true

     

    情況二:安裝版的Tomcat下沒(méi)有catalina.bat

    windows服務(wù)執(zhí)行的是bin\tomcat.exe.他讀取注冊(cè)表中的值,而不是catalina.bat的設(shè)置.

    修改注冊(cè)表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions
    原值為
    -Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"
    -Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"
    -Xrs

    加入 -Xms300m -Xmx350m 
    重起tomcat服務(wù),設(shè)置生效

     

    ---------------------------------------------------------

    各參數(shù)的比例:

    Xmx 與PermSize的和不可超過(guò)JVM可獲得的總內(nèi)存

    PermSize不可大于Xmx

     

    請(qǐng)參見(jiàn)其它的參數(shù)詳解的文章,各參數(shù)值大小的本文不討論.

    posted on 2010-11-08 14:57 rogerfan 閱讀(4912) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 【Linux/Unix】
    主站蜘蛛池模板: 好吊色永久免费视频大全| 亚洲精品成人久久| 亚洲乱码国产一区网址| 四虎永久在线精品免费观看地址| 在线免费观看a级片| 国产高清在线免费视频| 日韩在线免费播放| 国产免费午夜a无码v视频| 免费在线精品视频| 亚洲色图综合在线| 久久精品国产亚洲麻豆| 久久久久亚洲AV成人无码网站| 亚洲午夜精品久久久久久人妖| 久久精品国产精品亚洲毛片| 亚洲中文字幕人成乱码| 中文字幕在线观看亚洲视频| 亚洲av永久中文无码精品综合 | 又爽又高潮的BB视频免费看| 亚洲 小说区 图片区 都市| 亚洲一级片免费看| 亚洲av中文无码乱人伦在线咪咕| 久久久久久亚洲精品成人| 亚洲国产91在线| 污视频网站在线观看免费| 黄桃AV无码免费一区二区三区| 久久国产乱子伦精品免费一 | 特级做a爰片毛片免费看| 两个人日本免费完整版在线观看1| 国产猛男猛女超爽免费视频| 精品福利一区二区三区免费视频| 免费av欧美国产在钱| 免费一级肉体全黄毛片| 国产精品亚洲аv无码播放| 亚洲国产人成在线观看| 国产亚洲精品美女久久久久久下载| 美女被免费网站91色| h视频在线免费看| 免费A级毛片无码久久版| 久久久久久亚洲精品中文字幕 | 自拍偷自拍亚洲精品情侣| 亚洲视频一区在线|