0

Tomcat runs in a virtual machine. I monitored a sudden decrease in the JVM committed heap memory from 4G to 3.86G. This causes FULL GC. I want to know why and when JVM does it?

karel
  • 5,489
  • 46
  • 45
  • 50
  • jdk1.7.0_79: using thread-local object allocation. Parallel GC with 4 thread(s) Heap Configuration: MinHeapFreeRatio = 0 MaxHeapFreeRatio = 100 MaxHeapSize = 4294967296 (4096.0MB) NewSize = 1073741824 (1024.0MB) MaxNewSize = 1073741824 (1024.0MB) OldSize = 5439488 (5.1875MB) NewRatio = 2 SurvivorRatio = 8 PermSize = 536870912 (512.0MB) MaxPermSize = 536870912 (512.0MB) G1HeapRegionSize = 0 (0.0MB) – litterdu Apr 30 '19 at 01:14
  • 2
    Please [edit] your question to include updates. – trashgod Apr 30 '19 at 01:17
  • 2
    It probably is the other way around. The Full GC caused the committed memory decrease. I expect that GC has released some memory back to the OS. Why? Because, the GC decided *current* usage patterns do not require / justify use of that much memory. (My recollection is that this only happens after a Full GC, and it takes a few Full GCs for the GC to decide to do this.) – Stephen C Apr 30 '19 at 02:15
  • Also - you should upgrade your Java installation. Java 7 is 4 *years* beyond end-of-life. – Stephen C Apr 30 '19 at 02:22
  • Java 7 has not way to release some memory back to the OS – litterdu May 07 '19 at 08:50

0 Answers0