heap space 和 permgen space 溢出的簡單解決方法和原理筆記

1 . PermGen space
全稱是Permanent Generation space,是指內存的永久保存區域.
用於存放,Class和Meta的信息,Class在被 Load的時候被放入PermGen space區域.所以當我們的應用服務器在啓動的時候會加載很多的CLASS的時候會出現OutOfMemoryError: PermGen spac的錯誤. 解決方法自然也就是要加大應用服務器在jvm啓動時候所需要初始化的perGen space的size 了,一般是在應用服務器的啓動參數的jvm配置中加入 :
  -XX:MaxNewSize=256m -XX:MaxPermSize=256m

2. Heap space
Heap psace與permGen區域存放的東西不同,主要是存放java運行時產生的對象,他們是GC(Garbage Collection)在運行期間會定時進行清理的.所以當在JVM中如果98%的時間是用於GC且可用的Heap size 不足2%的時候將拋出"java.lang.OutOfMemoryError: Java heap space "的錯誤.原因是對象的產生上限以達到jvm的上限 . 解決辦法自然是設置更大的jvm的heap space size:
這就是爲什麼我們要在應用服務器的jvm啓動參數上加上 -Xms256m -Xmx256m  參數的原因.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章