2014-09-23 90 views
0

我正在開發使用Java/J2EE的Web應用程序。當我在服務器上部署該應用程序時,它運行兩天後,tomcat自動停止並打印此錯誤消息,並且如果1天內不訪問該應用程序,可以幫助我解決此問題。內存不足以使Java運行時環境繼續運行

我已經設置堆大小-Xms1024m -Xmx1536M -XX:MaxPermSize參數= 1024M」

沒有足夠的內存用於Java運行時環境繼續。 機內存分配(malloc的)未能分配32776個字節組塊::新 更多信息的錯誤報告文件保存爲: /usr/local/apache-tomcat-7.0.53/bin/hs_err_pid15512.log

+0

這可能是您的代碼可能使用大量內存的情況。你有沒有想過使用say profiling來掃描你的代碼的性能問題。它不是那個服務器有問題可能是你的代碼是真正的問題 – vikeng21 2014-09-23 12:25:54

+1

最大perm大小1gb似乎有點過分;如果真的需要它那麼高,可能已經是一個不正確的指標。 – Gimby 2014-09-23 12:29:03

+0

執行應用程序內存消耗分析。代碼中很可能有內存泄漏。 – 2014-09-23 12:43:51

回答

0

至少轉到保存錯誤報告的目錄(在本例中爲/usr/local/apache-tomcat-7.0.53/bin/hs_err_pid15512.log)會很好。我建議閱讀報告中的內容,因爲如果它說32位模式下的內存不足,請嘗試使用64位jvm來解決問題。如果第一個不起作用,那麼去你的eclipse.ini文件,編輯你的堆大小爲2gbs,這爲jvm提供了更多的內存來運行。但它可能只是暫時的。