<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】
    主站蜘蛛池模板: 成人无遮挡毛片免费看| 免费无遮挡无码永久视频 | 亚洲乱亚洲乱少妇无码| 亚洲第一第二第三第四第五第六| 91香蕉视频免费| www.亚洲成在线| 手机在线看永久av片免费| 亚洲日韩国产精品乱-久| 性感美女视频免费网站午夜 | 亚洲综合在线观看视频| 97在线视频免费公开观看| 亚洲网址在线观看| 一二三四免费观看在线电影| 亚洲综合精品第一页| 国产免费av片在线播放| jizz在线免费播放| 亚洲va中文字幕无码久久| 午夜网站在线观看免费完整高清观看 | 亚洲色偷偷偷网站色偷一区| 免费不卡在线观看AV| 亚洲欧洲国产经精品香蕉网| 最近免费中文字幕4| MM1313亚洲国产精品| 国产精品V亚洲精品V日韩精品| 黄页网站在线视频免费| 亚洲男同帅GAY片在线观看| 久久久久久影院久久久久免费精品国产小说 | 久久久久久久久亚洲| 国产亚洲精品欧洲在线观看| 黄a大片av永久免费| 窝窝影视午夜看片免费| 亚洲国产精品无码中文字| www.999精品视频观看免费| 国产天堂亚洲精品| 亚洲av无码不卡| 国内一级一级毛片a免费| 两个人看www免费视频| 久久久久se色偷偷亚洲精品av| 免费一看一级毛片全播放| 免费h视频在线观看| 亚洲 欧洲 日韩 综合在线|