Tomcat運行Java Web內存溢出總類和解決辦法

在拋出內存溢出錯誤的時候,一般都會提示內存泄露的種類,一般也都是按照區域進行劃分:

1. 堆(heap)內存泄漏java.lang.OutOfMemoryError: Javaheap space:大家都比較熟悉 ,通過設置-Xms2048m -Xmx4096m可以解決

2. 棧(stack)內存泄漏:當前線程運行期間維護的中間變量等信息過多,例如常見的死循環引起stack over flow

3. 方法區(permanent heap)內存泄漏,即java.lang.OutOfMemoryError: PermGen space:發生的原因和類型裝載、類型卸載有直接的關係,通過設置-XX:MaxNewSize=256m -XX:MaxPermSize=256m可以解決。

一般情況下,當服務器內存過小,而提供了大量的訪問服務時,可能會緩存過多的數據對象造成堆內存溢出,當web應用不斷擴大,加載的lib庫達到一定大小(4M)後,就容易報PermGen OOM,也就是方法區溢出。

Xmx 最大不要超過服務器物理內存的80%

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