免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

JVM發生內存溢出的8種原因、及解決辦法

2021-02-12    分類: 網站建設

?1. Java 堆空間

發生頻率:5顆星

造成原因

  • 無法在 Java 堆中分配對象
  • 吞吐量增加
  • 應用程序無意中保存了對象引用,對象無法被 GC 回收
  • 應用程序過度使用 finalizer。finalizer 對象不能被 GC 立刻回收。finalizer 由結束隊列服務的守護線程調用,有時 finalizer 線程的處理能力無法跟上結束隊列的增長

解決方案

  • 使用 -Xmx 增加堆大小
  • 修復應用程序中的內存泄漏

2. GC 開銷超過限制

發生頻率:5顆星

造成原因

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

解決方案

  • 使用 -Xmx 增加堆大小
  • 使用 -XX:-UseGCOverheadLimit 取消 GC 開銷限制
  • 修復應用程序中的內存泄漏

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

發生頻率:2顆星

造成原因

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

解決方案

  • 使用 -Xmx 增加堆大小
  • 修復應用程序中分配巨大數組的 bug

4. Perm gen 空間

發生頻率:3顆星

造成原因

Perm gen 空間包含:

  • 類的名字、字段、方法
  • 與類相關的對象數組和類型數組
  • JIT 編譯器優化

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

解決方案

  • 使用 -XX: MaxPermSize 增加 Permgen 大小
  • 不重啟應用部署應用程序可能會導致此問題。重啟 JVM 解決

5. Metaspace

發生頻率:3顆星

造成原因

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

解決方案

  • 通過命令行設置 -XX: MaxMetaSpaceSize 增加 metaspace 大小
  • 取消 -XX: maxmetsspacedize
  • 減小 Java 堆大小,為 MetaSpace 提供更多的可用空間
  • 為服務器分配更多的內存
  • 可能是應用程序 bug,修復 bug

6. 無法新建本機線程

發生頻率:5顆星

造成原因

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

解決方案

  • 為機器分配更多的內存
  • 減少 Java 堆空間
  • 修復應用程序中的線程泄漏。
  • 增加操作系統級別的限制
  • ulimit -a
  • 用戶進程數增大 (-u) 1800
  • 使用 -Xss 減小線程堆棧大小

7. 殺死進程或子進程

發生頻率:1顆星

造成原因

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

解決方案

  • 將進程遷移到不同的機器上
  • 給機器增加更多內存
  • 與其他 OOM 錯誤不同,這是由操作系統而非 JVM 觸發的。

8. 發生 stack_trace_with_native_method

發生頻率:1顆星

造成原因

  • 本機方法(native method)分配失敗
  • 打印的堆棧跟蹤信息,最頂層的幀是本機方法

網站欄目:JVM發生內存溢出的8種原因、及解決辦法
鏈接分享:http://m.newbst.com/news24/100624.html

成都網站建設公司_創新互聯,為您提供網站改版網站設計網站內鏈域名注冊網站策劃定制網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站網頁設計