2011-02-09 71 views
1

我使用的Apache Tomcat 7.02作爲server.I使用sphinx4創建的應用程序並將其部署在Apache Tomcat server.Since這Sphinx4應用需要大量的內存來execute.So爲目的我分配了很多內存作爲Java堆空間(導出CATALINA_OPTS =「 - Xms1536m -Xmx1536m」)。我部署了服務器的服務器是一個帶有Debian Lenny的64位系統,以及2Gb的RAM。我創建了一個Servlet,POST數據到它,得到的結果...當我運行它的10位用戶需要大約8分鐘來處理,但如果我的100個用戶同時運行它,它THN顯示了這個在Tomcat狀態如何優化JVM利用更少的資源

免費存儲空間:37.0 MB總內存: 1484.81 MB內存最高:1484.81 MB

我也嘗試使用System.gc()的,但它確實沒有gud.So有沒有辦法通過它我可以檢查JVM的內存狀態並在需要時釋放它?

回答

4

您需要確定資源正在被使用。我建議你使用內存分析器並更改程序以消耗更少的內存。

如果您使用的是64位JVM可以使用-XX:+UseCompressedOops以減少內存消耗(它使用32位的參考,而不是64位的引用)

編輯:如果你不能調整你的應用程序可能值得考慮升級你的服務器。一臺24 GB的服務器可能需要1800英鎊左右的費用,並且可能允許您擴展到1000個用戶而無需更改代碼。 ;)

+0

嘿彼得,你能不能給我建議任何好的內存分析器...並且將-XX:+ UseCompressedOops什麼好處??? – 2011-02-09 09:14:01