resin服務器內存溢出(OutOfMemoryError)解決方法

導致OutOfMemoryError異常的常見原因有以下幾種:

  1. 內存中加載的數據量過於龐大,如一次從數據庫取出過多數據;
  2. 集合類中有對對象的引用,使用完後未清空,使得JVM不能回收;
  3. 代碼中存在死循環或循環產生過多重複的對象實體;
  4. 使用的第三方軟件中的BUG;
  5. 啓動參數內存值設定的過小;

此錯誤常見的錯誤提示:

  1. tomcat:java.lang.OutOfMemoryError: PermGen space
  2. tomcat:java.lang.OutOfMemoryError: Java heap space
  3. weblogic:Root cause of ServletException java.lang.OutOfMemoryError
  4. resin:java.lang.OutOfMemoryError
  5. java:java.lang.OutOfMemoryError

解決方法:

增加jvm的內存大小。

對resin容器,在bin文件夾下創建一個startup.bat文件,內容如下:

@echo off

call "httpd.exe" "-Xms128M" "-Xmx256M"

:end

當然上面不是根本的解決方法,優化程序,增加程序健壯性纔是根本方法,這需要開發者在編碼階段就注意。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章