問題表現(xiàn): 當用戶執(zhí)行一個大數(shù)據(jù)的應(yīng)用時(凈字節(jié)碼量約為5M)時,系統(tǒng)會提示出錯: 前臺錯誤為:HTTP Status 500-Dispatch[EAITool] to method listCurTree retrun an exception (以下省略) ……………………………………………………… ……………………………………………………… 后臺錯誤為:java.lang.OutOfMemoryError: unable to create new native thread (以下省略) ……………………………………………………… ……………………………………………………… 問題分析: 由于TOMCAT內(nèi)存溢出而引發(fā)的問題,主要原因是JVM的虛擬內(nèi)存默認為128M,當超過這個值時就把先前占用的內(nèi)存釋放,而導(dǎo)致好象TCP/IP丟包的假象,出現(xiàn)HTTP500的錯誤?! ?/span> 解決方法: 方法:加大TOMCAT可利用內(nèi)存: 操作方法: 結(jié)論: 經(jīng)過測試,我們得出如下數(shù)據(jù): 當系統(tǒng)傳輸約2000條數(shù)據(jù)時,大約近12M的凈數(shù)據(jù)(不壓縮時),系統(tǒng)輔助運行的內(nèi)存大約占用150M左右的空間,也就是近200M的內(nèi)存占用,而我們擴大了近800M的JAVA內(nèi)存使用,這對于業(yè)務(wù)本身來說是足夠了。所以你們不用擔心大數(shù)據(jù)量的傳遞問題。 基于JAVA虛擬機的原理,JAVA自動有垃圾回收機制,也就是在你對一些內(nèi)存長時間不使用時(近2分鐘,取決于使用頻度和優(yōu)先級等),就會自動垃圾回收,從而釋放不用的內(nèi)存占用。 |
|