Oracle Java SE (hotspot) GC Logfile rotation
Zufällig bin ich bei den Java Flags über die Option -XX:GCLogFileSize=x gestolpert. Da ich bei Oracle (im Gegensatz zur IBM JVM) einige Diagnosefunktionen, wie z.b. rollierende GC logfiles vermisste habe ich weiter gesucht, und den RFE 6941823 gefunden, der (für Java 7U2+) beschreibt, dass das Feature jetzt vorhanden ist, und (umständlich) mit 3 Optionen konfiguriert werden muss:
C:> java -XX:+PrintFlagsFinal -version | find "GCLog" uintx GCLogFileSize = 0 {product} uintx NumberOfGCLogFiles = 0 {product} bool UseGCLogFileRotation = false {product} java version "1.7.0_07" Java(TM) SE Runtime Environment (build 1.7.0_07-b10) Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)Ich würde das ganze immer zusammen mit der Details und Datestamp Option verwenden:
java -Xloggc:log/app.vgc -XX:GCLogFileSize=10M -XX:NumberOfGCLogFiles=10 -XX:+UseGCLogFileRotation -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:-PrintGCTimeStampsBei IBM kann man das übrigens dank kompaktem Syntax und Variablenexpansion deutlich besser machen:
$ java -Xverbosegclog:app.%Y%m%d.%H%M%S.%pid.vgc,10,10000Und dazu liefert IBM sogar noch ein Handbuch...