小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

拯救 Out Of Memory,8個(gè)案例帶你飛!

 liang1234_ 2019-05-21

來(lái)自:唐尤華

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

1. Java 堆空間

發(fā)生頻率:5顆星

造成原因

  1. 無(wú)法在 Java 堆中分配對(duì)象

  2. 吞吐量增加

  3. 應(yīng)用程序無(wú)意中保存了對(duì)象引用,對(duì)象無(wú)法被 GC 回收

  4. 應(yīng)用程序過(guò)度使用 finalizer。finalizer 對(duì)象不能被 GC 立刻回收。finalizer 由結(jié)束隊(duì)列服務(wù)的守護(hù)線(xiàn)程調(diào)用,有時(shí) finalizer 線(xiàn)程的處理能力無(wú)法跟上結(jié)束隊(duì)列的增長(zhǎng)


解決方案

單位對(duì)應(yīng):GB -> G, g;MB -> M, m;KB -> K, k

  1. 使用 -Xmx 增加堆大小

  2. 修復(fù)應(yīng)用程序中的內(nèi)存泄漏


2. GC 開(kāi)銷(xiāo)超過(guò)限制

發(fā)生頻率:5顆星

造成原因

  1. Java 進(jìn)程98%的時(shí)間在進(jìn)行垃圾回收,恢復(fù)了不到2%的堆空間,最后連續(xù)5個(gè)(編譯時(shí)常量)垃圾回收一直如此。


解決方案

  1. 使用 -Xmx 增加堆大小

  2. 使用 -XX:-UseGCOverheadLimit 取消 GC 開(kāi)銷(xiāo)限制

  3. 修復(fù)應(yīng)用程序中的內(nèi)存泄漏


3. 請(qǐng)求的數(shù)組大小超過(guò)虛擬機(jī)限制

發(fā)生頻率:2顆星

造成原因

  1. 應(yīng)用程序試圖分配一個(gè)超過(guò)堆大小的數(shù)組


解決方案

  1. 使用 -Xmx 增加堆大小

  2. 修復(fù)應(yīng)用程序中分配巨大數(shù)組的 bug


4. Perm gen 空間

發(fā)生頻率:3顆星

造成原因

Perm gen 空間包含:

  • 類(lèi)的名字、字段、方法

  • 與類(lèi)相關(guān)的對(duì)象數(shù)組和類(lèi)型數(shù)組

  • JIT 編譯器優(yōu)化

當(dāng) Perm gen 空間用盡時(shí),將拋出異常。

解決方案

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

  2. 不重啟應(yīng)用部署應(yīng)用程序可能會(huì)導(dǎo)致此問(wèn)題。重啟 JVM 解決


5. Metaspace

發(fā)生頻率:3顆星

造成原因

  1. Java 8 開(kāi)始 Perm gen 改成了 Metaspace,在本機(jī)內(nèi)存中分配 class 元數(shù)據(jù)(稱(chēng)為 metaspace)。如果 metaspace 耗盡,則拋出異常


解決方案

  1. 通過(guò)命令行設(shè)置 -XX: MaxMetaSpaceSize 增加 metaspace 大小

  2. 取消 -XX: maxmetsspacedize

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

  4. 為服務(wù)器分配更多的內(nèi)存

  5. 可能是應(yīng)用程序 bug,修復(fù) bug


6. 無(wú)法新建本機(jī)線(xiàn)程

發(fā)生頻率:5顆星

造成原因

  1. 內(nèi)存不足,無(wú)法創(chuàng)建新線(xiàn)程。由于線(xiàn)程在本機(jī)內(nèi)存中創(chuàng)建,報(bào)告這個(gè)錯(cuò)誤表明本機(jī)內(nèi)存空間不足


解決方案

  1. 為機(jī)器分配更多的內(nèi)存

  2. 減少 Java 堆空間

  3. 修復(fù)應(yīng)用程序中的線(xiàn)程泄漏。

  4. 增加操作系統(tǒng)級(jí)別的限制

    • ulimit -a

    • 用戶(hù)進(jìn)程數(shù)增大 (-u) 1800

  5. 使用 -Xss 減小線(xiàn)程堆棧大小


7. 殺死進(jìn)程或子進(jìn)程

發(fā)生頻率:1顆星

造成原因

  1. 內(nèi)核任務(wù):內(nèi)存不足結(jié)束器,在可用內(nèi)存極低的情況下會(huì)殺死進(jìn)程


解決方案

  1. 將進(jìn)程遷移到不同的機(jī)器上

  2. 給機(jī)器增加更多內(nèi)存

與其他 OOM 錯(cuò)誤不同,這是由操作系統(tǒng)而非 JVM 觸發(fā)的。

8. 發(fā)生 stack_trace_with_native_method

發(fā)生頻率:1顆星

造成原因

  1. 本機(jī)方法(native method)分配失敗

  2. 打印的堆棧跟蹤信息,最頂層的幀是本機(jī)方法


解決方案

  1. 使用操作系統(tǒng)本地工具進(jìn)行診斷

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多