MyEclipse啟動Tomcat報outOfMerorgError
阿新 • • 發佈:2019-01-24
Tomcat記憶體溢位的原因
在生產環境中tomcat記憶體設定不好很容易出現記憶體溢位。造成記憶體溢位是不一樣的,當然處理方式也不一樣。
這裡根據平時遇到的情況和相關資料進行一個總結。常見的一般會有下面三種情況:
1.OutOfMemoryError: Java heap space
2.OutOfMemoryError: PermGen space
3.OutOfMemoryError: unable to create new native thread.
Tomcat記憶體溢位解決方案
對於前兩種情況,在應用本身沒有記憶體洩露的情況下可以用設定tomcat jvm引數來解決。(-Xms -Xmx-XX:PermSize -XX:MaxPermSize)
最後一種可能需要調整作業系統和tomcat jvm引數同時調整才能達到目的。
執行JavaWeb專案的時候丟擲異常:
Exception in thread “main” Java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
在eclipse整合tomcat環境下反覆熱釋出應用也會出現此現象;
網上查詢可知該異常產生的原因是JVM預設分配的4M執行空間過小,J2EE專案載入的類過多,造成記憶體溢位。
解決方案為通過新增下面的引數增加分配給JVM的記憶體空間:
-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
網上的解決方案多半是針對純Tomcat的情況,並非通過Eclipse啟動的Tomcat。
或者修改eclipse.ini配置檔案,不過這些方法都不適合Eclipse執行Tomcat丟擲該異常的情況。
-Xms512m -Xms1024m
-XX:PermSize=256m -XX:MaxPermSize=512m
在生產環境中tomcat記憶體設定不好很容易出現記憶體溢位。造成記憶體溢位是不一樣的,當然處理方式也不一樣。
這裡根據平時遇到的情況和相關資料進行一個總結。常見的一般會有下面三種情況:
1.OutOfMemoryError: Java heap space
2.OutOfMemoryError: PermGen space
3.OutOfMemoryError: unable to create new native thread.
Tomcat記憶體溢位解決方案
對於前兩種情況,在應用本身沒有記憶體洩露的情況下可以用設定tomcat jvm引數來解決。(-Xms -Xmx-XX:PermSize -XX:MaxPermSize)
最後一種可能需要調整作業系統和tomcat jvm引數同時調整才能達到目的。
執行JavaWeb專案的時候丟擲異常:
Exception in thread “main” Java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
在eclipse整合tomcat環境下反覆熱釋出應用也會出現此現象;
網上查詢可知該異常產生的原因是JVM預設分配的4M執行空間過小,J2EE專案載入的類過多,造成記憶體溢位。
解決方案為通過新增下面的引數增加分配給JVM的記憶體空間:
-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
網上的解決方案多半是針對純Tomcat的情況,並非通過Eclipse啟動的Tomcat。
或者修改eclipse.ini配置檔案,不過這些方法都不適合Eclipse執行Tomcat丟擲該異常的情況。
修改eclipse.ini配置檔案增大的是Ecipse開發平臺本身執行的JVM的空間,並非Eclipse啟動Tomcat的記憶體空間。
-Xms512m -Xms1024m
-XX:PermSize=256m -XX:MaxPermSize=512m