[英]What is the Metadata GC Threshold and how do I tune it?
在一個應用程序中,我有以下-verbose:gc
[GC (Metadata GC Threshold) 8530310K->2065630K(31574016K), 0.3831399 secs]
[Full GC (Metadata GC Threshold) 2065630K->2053217K(31574016K), 3.5927870 secs]
[GC (Metadata GC Threshold) 8061486K->2076192K(31574016K), 0.0096316 secs]
[Full GC (Metadata GC Threshold) 2076192K->2055722K(31574016K), 0.9376524 secs]
[GC (Metadata GC Threshold) 8765230K->2100440K(31574016K), 0.0150190 secs]
[Full GC (Metadata GC Threshold) 2100440K->2077052K(31574016K), 4.1662779 secs]
這個“元數據 GC 閾值”是什么以及如何降低它。 注意:雖然Full GC 花費很長時間進行清理,但實際上並沒有清理多少,也就是說,如果不這樣做會更好。
日志消息告訴 GC 是由元空間分配失敗引起的。 元空間保存類元數據。 它們出現在 Java 8 中以取代PermGen 。
以下是一些調整Metaspaces 的選項。
您可能希望設置以下一個或多個選項:
-XX:MetaspaceSize=100M
設置分配的類元數據空間的大小,第一次超過時將觸發垃圾回收;
-XX:InitialBootClassLoaderMetaspaceSize=32M
增加引導類加載器Metaspace;
-XX:MinMetaspaceFreeRatio=50
使 Metaspaces 增長得更積極;
-XX:MaxMetaspaceFreeRatio=80
減少Metaspaces收縮的機會;
-XX:MinMetaspaceExpansion=4M
Metaspace 擴展的最小大小;
-XX:MaxMetaspaceExpansion=16M
在沒有 Full GC 的情況下擴展元空間的最大大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.