Full Frequency GC-Sun JVM

In JDK 1.6: I see that the full GC was launched, but the space of the old generation and perm gen is not fully used - the question is according to my understanding. FGC only works when the old gen or perm gen is full - I can’t understand why it works, although the% usage level is low?

See jstat -gcutil output below:

  S0 S1 EOP YGC YGCT FGC FGCT GCT
  0.00 82.14 51.17 13.78 26.43 219 19.347 1 0.131 19.479

   S0 S1 EOP YGC YGCT FGC FGCT GCT
  82.14 0.00 9.12 13.92 26.66 222 19.771 1 0.131 19.902

   S0 S1 EOP YGC YGCT FGC FGCT GCT
  82.14 0.00 11.07 9.07 24.15 230 20.166 2 1.851 22.017

My minimum / maximum heap is 1024 M, and the minimum and maximum space for the proxy server is defined as 768M.

+4
source share
3 answers

I solved the problem by setting jvm opts: XX:-DisableExplicitGC .

Some of the code in some external jar file may have explicitly called System.gc , which led to the behavior of such a garbage collection. Failure to do so led to the expected behavior of the garbage collection when 100% utilization was achieved.

+1
source

Turn on verbose gc to see exactly when the full gc has ended. Since jstat shows FGC events even for collections with large / hidden features

For more information visit .

+1
source

FGC only starts when the old gen or perm gen is full

It is not true. Read the java help document here

Java memory management may surprise everyone. It takes many years to learn how to set JVM parameters for non-trivial applications.

The permGen space is defined as 768M.

Reduce it to 128M

0
source

All Articles