[轉帖]40.JVM方法區(元空間)大小設置(-XX:MetaspaceSize和-XX:MaxMetaspaceSize)

1.方法區內存大小設置

1.方法區的大小可以不是固定的,JVM可以根據應用需要自動調整。
a)JDK7及以前(瞭解):-XX:PermSize設置永久代初始大小。-XX:MaxPermSize設置永久代最大可分配空間。(JDK7目前已經很少用了,這兩個參數在JDK8及以後已經沒有了,所以不必掌握,瞭解一下)
在這裏插入圖片描述
b) JDK8及以後:可以使用-XX:MetaspaceSize-XX:MaxMetaspaceSize設置元空間初始大小以及最大可分配大小。
例子:設置初始大小是100M,最大可分配空間也是100M-XX:MetaspaceSize=100m -XX:MaxMetaspaceSize=100m
1.如果不指定元空間的大小,默認情況下,元空間最大的大小是系統內存的大小,元空間一直擴大,虛擬機可能會消耗完所有的可用系統內存。
2.如果元空間內存不夠用,就會報OOM
3.默認情況下,對應一個64位的服務端JVM來說,其默認的-XX:MetaspaceSize值爲21MB,這就是初始的高水位線,一旦元空間的大小觸及這個高水位線,就會觸發Full GC並會卸載沒有用的類,然後高水位線的值將會被重置。
4.從第3點可以知道,如果初始化的高水位線設置過低,會頻繁的觸發Full GC,高水位線會被多次調整。所以爲了避免頻繁GC以及調整高水位線,建議將-XX:MetaspaceSize設置爲較高的值,而-XX:MaxMetaspaceSize不進行設置。
在這裏插入圖片描述

2.如何解決OOM問題?(瞭解)

下面的內容先了解一些。
在這裏插入圖片描述
更多JVM文章請訪問我的JVM專欄:
https://blog.csdn.net/u011069294/category_10113093.html

文章知識點與官方知識檔案匹配,可進一步學習相關知識
Java技能樹首頁概覽143991 人正在系統學習中
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章