當前位置:柔美女性網 >

綠色生活 >心理 >

無法創建新的堆疊頁面什麼情況

無法創建新的堆疊頁面什麼情況

無法創建新的堆疊頁面什麼情況

1、無法在 Java 堆中分配對象

2、吞吐量增加

3、應用程序無意中保存了對象引用,對象無法被 GC 回收

4、應用程序過度使用 finalizer。finalizer 對象不能被 GC 立刻回收。finalizer 由結束隊列服務的守護線程調用,有時 finalizer 線程的處理能力無法跟上結束隊列的增長

解決方案

1、使用 -Xmx 增加堆大小

2、修復應用程序中的內存泄漏

2、 GC 開銷超過限制

發生頻率:5顆星

造成原因

1、Java 進程98%的時間在進行垃圾回收,恢復了不到2%的堆空間,最後連續5個(編譯時常量)垃圾回收一直如此。

解決方案

1、使用 -Xmx 增加堆大小

2、使用 -XX:-UseGCOverheadLimit 取消 GC 開銷限制

3、修復應用程序中的內存泄漏

3、 請求的數組大小超過虛擬機限制

發生頻率:2顆星

造成原因

1、應用程序試圖分配一個超過堆大小的數組

解決方案

1、使用 -Xmx 增加堆大小

2、修復應用程序中分配巨大數組的 bug

4、 Perm gen 空間

發生頻率:3顆星

造成原因

Perm gen 空間包含:

1、類的名字、字段、方法

2、與類相關的對象數組和類型數組

3、JIT 編譯器優化

當 Perm gen 空間用盡時,將拋出異常。

解決方案

1、使用 -XX: MaxPermSize 增加 Permgen 大小

2、不重啟應用部署應用程序可能會導致此問題。重啟 JVM 解決

5、 Metaspace

發生頻率:3顆星

造成原因

1、從 Java 8 開始 Perm gen 改成了 Metaspace,在本機內存中分配 class 元數據(稱為 metaspace)。如果 metaspace 耗盡,則拋出異常

解決方案

1、通過命令行設置 -XX: MaxMetaSpaceSize 增加 metaspace 大小

2、取消 -XX: maxmetsspacedize

3、減小 Java 堆大小,為 MetaSpace 提供更多的可用空間

4、為服務器分配更多的內存

5、可能是應用程序 bug,修復 bug

6、 無法新建本機線程

發生頻率:5顆星

造成原因

1、內存不足,無法創建新線程。由於線程在本機內存中創建,報告這個錯誤表明本機內存空間不足

解決方案

1、為機器分配更多的內存

2、減少 Java 堆空間

3、修復應用程序中的線程泄漏。4、增加操作系統級別的限制

-ulimit -a

5、用户進程數增大 (-u) 1800

6、使用 -Xss 減小線程堆疊大小

7、 殺死進程或子進程

發生頻率:1顆星

造成原因

1、內核任務:內存不足結束器,在可用內存極低的情況下會殺死進程

解決方案

1、將進程遷移到不同的機器上

2、給機器增加更多內存

3、與其他 OOM 錯誤不同,這是由操作系統而非 JVM 觸發的。

8、 發生 stacktracewithnativemethod

發生頻率:1顆星

造成原因

1、本機方法(native method)分配失敗

2、打印的堆疊跟蹤信息,最頂層的幀是本機方法

解決方案

1、使用操作系統本地工具進行診斷

相關資源:Windows中出錯解決方法_無法創建新的堆疊防護頁面...

標籤: 堆疊 頁面
  • 文章版權屬於文章作者所有,轉載請註明 https://rmnxw.com/zh-hk/lvse/xinli/z32wkr.html