沒想到我會遇到metaspace 記憶體溢位的問題,我之前以為記憶體溢位都是堆的,這次知道了,記載一下
首先 專案上線之一段時間之後,cpu標高
表現:outofmemoryerror:metaspace
分析工具: visualvm監控
原因分析:
metaspace 是存類 方法的載入資訊的
1.metaspace 設定小了
2.持續建立類 導致metaspace 元空間不夠用
metaspace 元空間是什麼引數決定的?
-xx:maxmetaspacesize=100m
通過visualvm監控 可以看出每30s就cpu標高,執行緒也標高,出現記憶體溢位,導致jvm full gc操作,消耗大量cpu資源。
問題原因:
是我**中有一段是根據xml 和 物件的轉化,裡面是new的例項,
導致的類持續載入
用單例模式的思想解決建立大量複雜物件引起的資源消耗問題
Spark效能調優 JVM調優
通過一張圖讓你明白以下四個問題 1.jvm gc機制,堆記憶體的組成 2.spark的調優為什麼會和jvm的調優會有關聯?因為scala也是基於jvm執行的語言 3.spark中oom產生的原因 4.如何在jvm這個層面上來對spark進行調優 補充 spark程式執行時 jvm堆記憶體分配比例 r...
JVM效能調優
gc 優化的兩個目標 將進入老年代的物件數量降到最低 減少 full gc 的執行時間 gc 優化的基本原則是 將不同的 gc 引數應用到兩個及以上的伺服器上然後比較它們的效能,然後將那些被證明可以提高效能或減少 gc 執行時間的引數應用於最終的工作伺服器上。gc 優化需要考慮的 jvm 引數 型別...
JVM調優總結
堆大小設定 jvm 中最大堆大小有三方面限制 相關作業系統的資料模型 32 bt還是64 bit 限制 系統的可用虛擬記憶體限制 系統的可用物理記憶體限制。32位系統下,一般限制在1.5g 2g 64為作業系統對記憶體無限制。我在windows server 2003 系統,3.5g物理記憶體,jd...