日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

拯救 Out Of Memory,8个案例带你飞!

發布時間:2025/3/21 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 拯救 Out Of Memory,8个案例带你飞! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來自:唐尤華

https://bloggceasy.files.wordpress.com/2015/05/outofmemoryerror2.pdf

1. Java 堆空間

發生頻率:5顆星

造成原因

  • 無法在 Java 堆中分配對象

  • 吞吐量增加

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

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

  • 解決方案

    單位對應:GB -> G, g;MB -> M, m;KB -> K, k

  • 使用?-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)分配失敗

  • 打印的堆棧跟蹤信息,最頂層的幀是本機方法

  • 解決方案

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

  • 總結

    以上是生活随笔為你收集整理的拯救 Out Of Memory,8个案例带你飞!的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。