程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> JVM 調優 —— OutOfMemory淺析

JVM 調優 —— OutOfMemory淺析

編輯:JAVA綜合教程

JVM 調優 —— OutOfMemory淺析


零. 簡介 OutOfMemory 意思就是需要申請更大的內存, 但是內存限制無法申請到需要的內存。     一. 解決方法 基本上解決方向有兩種:  
  1. 檢查程序是否有問題, 是不是寫死循環不停地創建並持有對象導致內存不足  
    1. 內存確實不夠, 分為老年代內存不足和永久代內存不足   (1) 老年代內存不足

      看一段 GC 日志:在 Full GC 結束後, 但是老年代占用空間還是接近或者等於老年代最大空間, 說明老年代空間確實分配不夠。 調大 -Xms、 -Xmx 並保持新生代大小不變,直到 GC 日志不出現關鍵字 Exception in thread “main” java.lang.OutOfMemoryError: Java heap space。

       

      2016-01-19T14:18:19.883+0800: 179.163: [CMS-concurrent-reset-start]
      2016-01-19T14:18:19.893+0800: 179.173: [CMS-concurrent-reset: 0.009/0.009 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
      {Heap before GC invocations=154 (full 1):
       par new generation   total 943744K, used 850746K [0x0000000757000000, 0x0000000797000000, 0x0000000797000000)
        eden space 838912K, 100% used [0x0000000757000000, 0x000000078a340000, 0x000000078a340000)
        from space 104832K,  11% used [0x000000078a340000, 0x000000078aecea30, 0x00000007909a0000)
        to   space 104832K,   0% used [0x00000007909a0000, 0x00000007909a0000, 0x0000000797000000)
       concurrent mark-sweep generation total 1560576K, used 1560576K [0x0000000797000000, 0x00000007f6400000, 0x00000007f6400000)
       concurrent-mark-sweep perm gen total 159744K, used 69030K [0x00000007f6400000, 0x0000000800000000, 0x0000000800000000)

       

       

       

      (2) 永久代內存不足 看一段 GC 日志:在 Full GC 結束後, 但是永久代占用空間還是接近或者等於永久代最大空間, 說明永久代空間確實分配不夠。 調大 -XX:PermSize、 -XX:MaxPermSize,直到 GC 日志不出現關鍵字 Exception in thread “main” java.lang.OutOfMemoryError: PermGen space。
      2016-01-19T14:18:19.883+0800: 179.163: [CMS-concurrent-reset-start]
      2016-01-19T14:18:19.893+0800: 179.173: [CMS-concurrent-reset: 0.009/0.009 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
      {Heap before GC invocations=154 (full 1):
       par new generation   total 943744K, used 850746K [0x0000000757000000, 0x0000000797000000, 0x0000000797000000)
        eden space 838912K, 100% used [0x0000000757000000, 0x000000078a340000, 0x000000078a340000)
        from space 104832K,  11% used [0x000000078a340000, 0x000000078aecea30, 0x00000007909a0000)
        to   space 104832K,   0% used [0x00000007909a0000, 0x00000007909a0000, 0x0000000797000000)
       concurrent mark-sweep generation total 1560576K, used 345246K [0x0000000797000000, 0x00000007f6400000, 0x00000007f6400000)
       concurrent-mark-sweep perm gen total 159744K, used 159744K [0x00000007f6400000, 0x0000000800000000, 0x0000000800000000)


       



       

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved