We run many Tomcat servers and have observed full garbage collections (GCs) are often performed on an hourly basis, particularly when memory usage is relatively low. The precise
Your "regular" hourly GCs are probably due to this known bug, "The JreMemoryLeakPreventionListener causes a full GC every hour when gcDaemonProtection=true".
Confirm your Tomcat versions and the value of the gcDaemonProtection
property of your JreMemoryLeakPreventionListener
(default is true
).
The patch was purportedly included in Tomcat v.7.0.28+ and v.6.0.36+.
Either upgrade your server(s), or choose a non-upgrading solution from here, summarized as:
-XX:+DisableExplicitGC
-XX:+ExplicitGCInvokesConcurrent
Credit where credit is due; I obtained my initial answer from here.