Ich versuche, Informationen zu einem gelegentlichen Problem zu sammeln, das wir haben, bei dem die App nach ein paar Wochen Betrieb langsamer wird, gut funktioniert, langsamer wird, gut funktioniert, wobei die Intervalle zwischen langsam und gut funktionierend immer kürzer werden. Meine Theorie ist, dass wir im Laufe der Zeit häufiger Speicher bereinigen. Eine weitere wichtige Information ist, dass wir gelegentlich OOM PermGen-Probleme hatten.
Ich habe verbose:gc aktiviert und sehe jetzt GC-Ausgaben in catalina.out. Ich denke, ich muss das PrintGCDetails-Flag hinzufügen, basierend auf den Informationen hier:
http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html
Das Aktivieren des letzten Flags gibt Informationen zum Sammeln von "Tenured" -Speicher aus. Die Frage ist, ob das der Speicher ist, der PermGen-Fehler verursacht, oder ob es etwas anderes ist. Und wenn es etwas anderes ist, wie kann ich Informationen protokollieren, die den PermGen-Speicher zeigen werden?
EDIT - Ich kann leider keine der JVM-Überwachungstools in dieser Umgebung verwenden.
EDIT - Ich habe die genannten Konfigurationsoptionen hinzugefügt, sowie eine für die Anzeige der Tenuring-Verteilung, ich bekomme Dinge wie
27.701: [GC 27.701: [ParNew
Desired survivor size 2162688 bytes, new threshold 4 (max 4)
- age 1: 1906560 bytes, 1906560 total
- age 2: 2064 bytes, 1908624 total
- age 3: 5064 bytes, 1913688 total
- age 4: 650368 bytes, 2564056 total
: 35684K->2678K(38336K), 0.0068580 secs] 224179K->191173K(1065664K), 0.0069700 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
Ist die ParNew-Generation der PermGen-Speicher?
und
(concurrent mode failure): 25387K->31940K(1027328K), 0.2983200 secs] 50714K->31940K(1065664K), [CMS Perm : 35273K->35139K(35392K)], 0.2985210 secs] [Times: user=0.30 sys=0.00, real=0.30 secs]
(concurrent mode failure): 25356K->31941K(1027328K), 0.3032690 secs] 50861K->31941K(1065664K), [CMS Perm : 35264K->35129K(35392K)], 0.3034800 secs] [Times: user=0.30 sys=0.00, real=0.31 secs]
die Fehler machen mir Sorgen.
Vielen Dank im Voraus