簡體   English   中英

JVM:為什么我的 S0C 區域的大小為零?

[英]JVM: Why does my S0C Area have a size of zero?

我在我的應用程序中看到了大量的年輕代垃圾收集。 這是一個運行在 openJDK 8u212 上的 Scala 應用程序。 我在正在運行的 docker 容器上做了一個 jstat,它顯示 S0C 區域的大小為零。 這將解釋為什么我會得到這么多年輕的 GC,但我不知道為什么會發生這種情況。

S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
 0.0   2048.0  0.0   2048.0 36864.0  31744.0   706560.0   644022.6  93360.0 82013.4 11184.0 9627.5  15299  126.920   0      0.000  126.920

關於如何進一步調查的任何想法? 這些是我的 JVM_OPTS。

"-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/mnt/mesos/sandbox/ -Xmx3g -XX:+UseG1GC -XX:+UseStringDeduplication 

我找不到任何可用於控制 S0C 大小的 JVM 選項。

當伊甸園空間已滿時,會觸發次要垃圾收集(由伊甸園和幸存者空間組成)。 當觸發次要垃圾回收時,未引用的對象(在 Eden 和 Survivor 中)被刪除,引用的對象年齡增加,引用的對象被移動到其他 Survivor 空間。 伊甸園和幸存者空間被清除。 這個循環一直持續到老化的對象達到某個年齡閾值。 當對象達到一定的年齡閾值時,它們會從年輕代提升到老年代。 正如霍爾格所說,兩個幸存者空間之一永遠不能包含對象。

參考:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM