posts - 495,comments - 227,trackbacks - 0

          問題表現:

          當用戶執行 一個大數據的應用時( 凈字節碼量約為 5M )時,系統會提示出錯:

          前臺錯誤為: HTTP   Status 500 -Dispatch[EAITool] to method listCurTree retrun an exception

          ( 以下省略 )

          ………………………………………………………

          ………………………………………………………

          后臺錯誤為: java.lang.OutOfMemoryError:?unable?to?create?new?native?thread
          ????????at?java.lang.Thread.start(Native?Method)
          ????????at?org.apache.catalina.loader.WebappLoader.notifyContext(WebappLoader.ja
          va:847)

          ( 以下省略 )

          ………………………………………………………

          ………………………………………………………

          問題分析:

              由于 TOMCAT 內存溢出而引發的問題,主要原因是 JVM 的虛擬內存默認為 128M ,當超過這個值時就把先前占用的內存釋放,而導致好象 TCP/IP 丟包的假象,出現 HTTP500 的錯誤?! ?/span>
          ?????
          解決方法主要是加大 TOMCAT 可利用內存,并在程序當中加大內存使用。

          解決方法:

          方法:加大 TOMCAT 可利用內存:
            在 TOMCAT 的目錄下,也就是在 TOMCAT41/bin/catalina.bat 文件最前面加入
             set JAVA_OPTS=-Xms800m -Xmx800m
            表現效果是當你啟動 TOMCAT 時,系統內存會增加近 800M 使用

          操作方法:
             1 )、先關掉 WINDOWS 服務當中的 TOMCAT4 服務。
             2 )、再找到 TOMCAT/BIN 目錄下 startup.bat ,雙擊打開它,你會發現現 WINDOWS 內存占用會增加近 800M 。
             3 )、執行程序,因為是 TOMCAT 重新編譯程序,所以第一次會比較慢。

          結論:

          經過測試,我們得出如下數據:

          系統傳輸約 2000 條數據時,大約近 12M 的凈數據(不壓縮時),系統輔助運行的內存大約占用 150M 左右的空間,也就是近 200M 的內存占用,而我們擴大了近 800M JAVA 內存使用,這對于業務本身來說是足夠了。所以你們不用擔心大數據量的傳遞問題。

          基于 JAVA 虛擬機的原理, JAVA 自動有垃圾回收機制,也就是在你對一些內存長時間不使用時(近 2 分鐘,取決于使用頻度和優先級等),就會自動垃圾回收,從而釋放不用的內存占用。

          posted on 2006-08-04 20:15 SIMONE 閱讀(851) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 桦川县| 都安| 伊川县| 琼中| 鹤山市| 洮南市| 文化| 龙泉市| 德格县| 南川市| 澳门| 罗平县| 秦皇岛市| 津市市| 绥江县| 韶山市| 吴川市| 林州市| 宁河县| SHOW| 兴义市| 逊克县| 若羌县| 隆尧县| 上林县| 乌拉特前旗| 徐水县| 霞浦县| 金昌市| 朝阳区| 嵊州市| 资讯 | 景泰县| 内丘县| 星子县| 台中市| 肇庆市| 贺州市| 彰化市| 东乡族自治县| 永昌县|