RocketMQ避坑指南:springcloud教程权威指南
1. Java 堆空間
**發生頻率:**5顆星
造成原因
無法在 Java 堆中分配對象
吞吐量增加
應用程序無意中保存了對象引用,對象無法被 GC 回收
應用程序過度使用 finalizer。finalizer 對象不能被 GC 立刻回收。finalizer 由結束隊列服務的守護線程調用,有時 finalizer 線程的處理能力無法跟上結束隊列的增長
解決方案
單位對應:GB -> G, g;MB -> M, m;KB -> K, k
使用?-Xmx?增加堆大小
修復應用程序中的內存泄漏
2. GC 開銷超過限制
**發生頻率:**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顆星
造成原因
解決方案
通過命令行設置?-XX: MaxMetaSpaceSize?增加 metaspace 大小
取消?-XX: maxmetsspacedize
減小 Java 堆大小,為 MetaSpace 提供更多的可用空間
為服務器分配更多的內存
可能是應用程序 bug,修復 bug
6. 無法新建本機線程
**發生頻率:**5顆星
造成原因
解決方案
為機器分配更多的內存
減少 Java 堆空間
修復應用程序中的線程泄漏。
增加操作系統級別的限制
-
ulimit -a
-
用戶進程數增大?(-u) 1800
7. 殺死進程或子進程
**發生頻率:**1顆星
造成原因
解決方案
將進程遷移到不同的機器上
給機器增加更多內存
與其他 OOM 錯誤不同,這是由操作系統而非 JVM 觸發的。
8. 發生 stack_trace_with_native_method
**發生頻率:**1顆星
造成原因
本機方法(native method)分配失敗
打印的堆棧跟蹤信息,最頂層的幀是本機方法
解決方案
使用操作系統本地工具進行診斷
Java面試核心知識點筆記
其中囊括了JVM、鎖、并發、Java反射、Spring原理、微服務、Zookeeper、數據庫、數據結構等大量知識點。
Java中高級面試高頻考點整理
更多Java進階知識筆記文檔分享,這些對于面試還是學習來說都是一份不錯的學習資料
有需要的朋友可以戳這里即可免費領取
最后還分享Java進階學習及面試必備的視頻教學
以戳這里即可免費領取](https://gitee.com/vip204888/java-p7)**
[外鏈圖片轉存中…(img-k6MhRPRQ-1627101877642)]
最后還分享Java進階學習及面試必備的視頻教學
[外鏈圖片轉存中…(img-1OBXryri-1627101877644)]
總結
以上是生活随笔為你收集整理的RocketMQ避坑指南:springcloud教程权威指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么google中的 JS规范 说要用
- 下一篇: 《环球冒险》20号几点开服啊?