Does anytime java(8) memory capacity decrease until JVM restart?
I am using jstat -gc to dump memory information and here is the snapshot from two days. The second snapshot has less captaity for SC1 and EC compared to the first snapshot.
Can someone help/explain why I am seeing this behavior? is that expected?
Java version : java-1.8.0-openjdk-1.8.0.191.b12
sc1: survivor space 1 capacity
EC: eden space capacity
S0C, S1C, S0U, S1U,EC,EU,OC,OU,MC,MU,CCSC,CCSU,YGC,YGCT,FGC,FGCT,GCT
4096.0,7168.0,3968.3,0.0,123904.0,54705.9,101888.0,24165.6,62464.0,60100.6,7168.0,6618.4,30,1.314,3,0.298,1.612
5632.0,4096.0,0.0,4000.2,113152.0,56035.3,101888.0,24165.6,62720.0,60145.3,7168.0,6620.0,33,1.345,3,0.298,1.643
There is a flag that controls that:
-XX:+UseAdaptiveSizePolicy, which is enabled by default. What this flag does, based on the target pause time you have (you are usingG1I assume), is increase or decrease certain regions based on the heuristics it gathers. The best way to learn at what exactly it does is the source code ofG1itself.