我們有一個運行良好的應用程序,一年。它是一個Web應用程序,運行在Windows Server 2003企業版Service Pack 2上的Microsoft Cluster下的Tomcat 5.5 + JDK 1.5下。該服務器具有11Gb的RAM(我知道它沒用!),其描述如下:「Physical Address Extension」 :我不知道這意味着什麼。無法爲Java分配足夠的堆空間
Tomcat服務配置了以下參數:-Xmx1024m -Xms128m
自上週以來,該服務不希望再開始與以下錯誤消息停止:「無法分配足夠的堆空間」。
我們嘗試了幾個測試:
java -Xmx1024m -version
=>無法java -Xmx758m -version
=>無法java -Xmx512m -version
=>傳遞
所以我們可以使用更少的內存爲最大堆大小,但這不是一個可接受的解決方法,因爲用戶數量會在幾個月內增加,我們需要將最大堆大小設置爲1024Mb。
另外我不明白爲什麼它工作正常,然後突然停止工作!看來,操作系統是現在無法分配連續的內存,還是其他什麼東西(頁面文件的大小,用戶內存分配,...)
這是相當困難的知道,如果事情發生了轉變(OS補丁,配置,... ),因爲Web應用程序正在客戶服務器上運行,我們無法訪問它。
'-Xmx1024m -Xmx128m',真的嗎?你的意思是'-Xmx1024m -Xms128m'(注意-Xms)? – Thomas 2011-04-26 09:25:14
物理地址擴展:http://en.wikipedia.org/wiki/Physical_Address_Extension - 這意味着32位處理器可以訪問超過4 GB的RAM。 – Thomas 2011-04-26 09:26:44
另外我忘了說我們在「C:\ Program Files \ Java \ jre1.6.0_07」中安裝了JRE 1.6。 JDK(即1.5)不在系統路徑中,但上面的測試使用JDK而不是JRE。 Tomcat也配置爲使用JDK。 – 2011-04-26 09:27:37