Warum die JVM diese Tomcat-Server führen Sie eine vollständige GC stündlich?

Wir führen viele Tomcat-Server und haben beobachtet, full garbage collections (GCs) werden Häufig durchgeführt, auf Stundenbasis, besonders wenn die Speicherauslastung ist relativ gering. Die genaue Zeit erscheint in Bezug auf die Zeit, die der application server gestartet wurde; wenn ein server gestartet wird um 01:13, eine volle GC erfolgt bei 02:13, und die nächste volle GC wird bei auftreten 03:13. Ich habe nicht in der Lage zu finden, keine Dokumentation zu erklären dieses Verhalten.

Dies ist ein problem, weil ein server-pool begann gleichzeitig alle dazu neigen, full GCs in der gleichen Zeit. Wenn die GC Verzögerung ist lang genug, um zu einem load-balancer, um markieren Sie einen server herunter, der gesamten Anwendung kann offline gehen für eine Zeit. Es wäre besser, wenn der full GCs werden konnte, verteilt über einen Zeitraum, so dass keine zwei Server sind dabei eine volle GC in der gleichen Zeit, aber ich finde keine Möglichkeit um dieses Verhalten zu Steuern.

Hat jemand gesehen, dass dieses Verhalten? Gibt es eine Möglichkeit, zu beeinflussen, wenn diese "normale" full GCs passieren?

  • Haben Sie einen Prozess, der läuft nach einem Zeitplan (via Quartz, et al.) möglicherweise füllen die Haufen auf einer regelmäßigen basis?
InformationsquelleAutor user2076909 | 2013-02-15
Schreibe einen Kommentar