Dieser Artikel untersucht hauptsächlich die Migration von Java9 -GC -Protokollparametern.
Protokollierung, die JVM und GC vereint
Java9 hat ein einheitliches Protokoll-Framework eingeführt und auch die GC-bezogene Protokollausgabe und Konfiguration enthalten.
Verwandte JEP (JDK -Verbesserungsvorschlag)
Xlog -Syntax
-Xlog [: Option] Option: = [was>] [: [Ausgabe>] [: [<Dekorateure>] [: <Ausgangsoptionen>]] 'Help' 'Deaktivieren' Was: = <Selektors> [, ...] Selektor: = <Tag-Set> [*] [= <Spegel>] Tag-Set: = <Staging. 'stdout' [file =] <DileName> Dekoratoren: = <Dekorateur> [, ...] 'None' Dekorateur: = Zeit-Laufzeit-Timemillis upimemillis timenanos upimenanos pid TID-Level-Tags Ausgabe-Optionen: = <output_option> [, ...] optionoption: = filecount = <Datei count> agierung = <dateigröße in kb> parktion = agellage in kb> parktion = agellage in kb> parktion = agellage in kb> parmaction = <
Was
Konfigurieren Sie hauptsächlich Tag und Ebene
Etikett
Wo alle alle Tags darstellen, sind die anderen wie folgt:
add, age, alloc, annotation, aot, arguments, attach, barrier, biasedlocking, blocks, bot, breakpoint, bytecode, census, class, classshisto, cleanup, compaction, comparator, constraints, constantpool, coops, cpu, cset, data, defaultmethods, d ump, ergo, event, exceptions, exit, fingerprint, freelist, gc, hashtables, heap, humongous, ihop, iklass, init, itables, jfr, jni, jvmti, liveness, load, loader, logging, mark, marking, metadata, metaspace, method, mu, modules, monitorinflatio n, monitormismatch, nmethod, normalize, objecttagging, obsolete, ooopmap, os, pagesize, parser, patch, path, phases, plab, preorder, promotion, protectiondomain, purge, redefine, ref, refine, region, remset, resolve, safepoint, scange, scru b, setting, stackmap, stacktrace, stackwalk, start, startuptime, state, stats, stringdedup, stringtable, subclass, survivor, sweep, system, task, thread, time, timer, tlab, unload, update, Überprüfung, Überprüfung, Vmoperation, Vtables, Workganggang
Ebene
Hauptsächlich unterteilt, verfolgt, debuggen, Informationen, Warnung, Fehler
Ausgabe
- STDOut (`sendet die Ausgabe an stdout`)- stderr (` sendet die Ausgabe an stderr`)- Datei = Dateiname (`sendet die Ausgabe an Textdateien (en)`).
Es gibt drei Typen wie oben. Wenn Sie eine Datei angeben, können Sie die %P -Variable verwenden, um die aktuelle JVM -PID darzustellen und %t zu verwenden, um den Startzeitstempel von JVM darzustellen. Zum Beispiel
-Xlog: GC: DemoApp-GC-%p-%T.Log
Der Name der Ausgabedatei lautet wie folgt:
DemoApp-GC-1678-2018-03-01_21-44-18.log
Dekorateure
Wenn nicht angegeben, ist die Standardeinstellung Fahrt, Level und Tags. Zum Beispiel
[3.080S] [Info] [GC, CPU] GC (5) Benutzer = 0,03S SYS = 0,00S Real = 0,01s
Beispiel
-Xlog: gc = trece: file = gctrace.txt: upimemillis, pid: fileCount = 5, fileSize = 1024
Tag is gc, Levle Is Trace, Drehdateien sind 5, jede Datei ist 1 m, der Dateiname gctrace.txt
Ausgabeinstanz
[1110ms][1867] GC(2) Pause Remark 17M->17M(256M) 2.024ms[1110ms][1867] GC(2) Finalize Live Data 0.000ms[1110ms][1867] GC(2) Pause Cleanup 17M->17M(256M) 0.177ms[1112ms][1867] GC(2) Concurrent Cycle 7.470ms [2951Ms] [1867] GC (3) Pause Anfangsmarke (Metadata-GC-Schwelle) 149m-> 30 m (256 m) 27,175 ms [2951ms] [1867] GC (4) gleichzeitiger Zyklus [2972 ms] [1867] GC (4) Pause 32m- 5.132ms [2974ms] [1867] GC (4) Live-Daten 0,000 ms [2974ms] [1867] GC (4) Pause aufräumen 32 m-> 32 m (256 m) 0,214 ms [2976Ms] [1867] GC (4) Konkurrentenzyklus 25,42ms 25,42ms 25.42ms
Migration verwandter Parameter des alten GC
| Legacy Müllsammlung (GC) Flagge | Xlog -Konfiguration | Kommentar |
|---|---|---|
| G1PrinTheapRegions | -Xlog: GC+Region = Trace | Nicht anwendbar |
| GCLOGFILESIZE | Keine Konfiguration verfügbar | Die Protokollrotation wird vom Rahmen behandelt. |
| Numberofgclogfiles | Nicht anwendbar | Die Protokollrotation wird vom Rahmen behandelt. |
| PrintadaptiveSizepolicy | -Xlog: Ergo*= Level | Verwenden Sie für die meisten Informationen ein Debug -Maßstab oder eine Spurniveau für alle, die für PrintadaptiveSizepolicy angemeldet wurden. |
| Printgc | -Xlog: gc | Nicht anwendbar |
| PrintgCapplicationConcurrentTime | -Xlog: safepoint | Beachten Sie, dass PrintGCapplicationConcurrentTime und PrintGCapplicationStloppedTime auf demselben Tag angemeldet sind und in der neuen Protokollierung nicht getrennt sind. |
| PrintgCapplicationStopedTime | -Xlog: safepoint | Beachten Sie, dass PrintGCapplicationConcurrentTime und PrintGCapplicationStloppedTime auf demselben Tag angemeldet sind und in der neuen Protokollierung nicht getrennt sind. |
| Printgccause | Nicht anwendbar | GC -Ursache ist jetzt immer protokolliert. |
| Printgcdatestamps | Nicht anwendbar | Datumsstempel werden vom Framework protokolliert. |
| Printgcdetails | -Xlog: gc* | Nicht anwendbar |
| Printgcid | Nicht anwendbar | GC ID ist jetzt immer protokolliert. |
| Printgctasktimestamps | -Xlog: Aufgabe*= Debug | Nicht anwendbar |
| Printgctimestamps | Nicht anwendbar | Zeitstempel werden vom Framework protokolliert. |
| PrinTheapatgc | -Xlog: gc+heap = trece | Nicht anwendbar |
| PrinTreferencegc | -Xlog: ref*= debug | Beachten Sie, dass PrinTreferenceGC in der alten Protokollierung nur dann einen Effekt hatte, wenn DruckgCDetails auch aktiviert war. |
| PrintStringduplicationStatistics | -Xlog: stringdedup*= debug | Nicht anwendbar |
| PrinttenuringDiviTribution | -Xlog: Alter*= Ebene | Verwenden Sie ein Maß an Debugg für die relevantesten Informationen oder eine Spurniveau für alle, die für die PrintMuring -Verteilung angemeldet wurden. |
| UseGclogFilerotation | Nicht anwendbar | Was für die PrintMuring -Verteilung angemeldet wurde. |
Legacy -Laufzeitparametermigration
| Legacy Runtime Flag | Xlog -Konfiguration | Kommentar |
|---|---|---|
| TraceExceptions | -Xlog: Ausnahmen = Info | Nicht anwendbar |
| TraceClassloading | -Xlog: Klasse+load = Ebene | Verwenden Sie Level = Info für reguläre Informationen oder Level = Debugug für zusätzliche Informationen. In Unified Logging Syntax, -Verbose: Klasse Equals -xlog: Klasse+Load = Info, Klasse+Entlade = Info. |
| TraceClassloadingPreorder | -Xlog: class+vorbestellt = debug | Nicht anwendbar |
| TraceClassunloading | -Xlog: Klasse+Entladen = Ebene | Verwenden Sie Level = Info für reguläre Informationen oder Level = Trace für zusätzliche Informationen. In Unified Logging Syntax, -Verbose: Klasse Equals -xlog: Klasse+Load = Info, Klasse+Entlade = Info. |
| Ausführlichkeit | -Xlog: verifizieren = info | Nicht anwendbar |
| TraceclassPaths | -Xlog: class+path = info | Nicht anwendbar |
| TraceClassResolution | -Xlog: class+resolve = debug | Nicht anwendbar |
| Traceclassinitialisierung | -Xlog: class+init = info | Nicht anwendbar |
| Traceloaderconstraints | -Xlog: Klasse+Loader+Einschränkungen = Info | Nicht anwendbar |
| TraceClassloaderdata | -Xlog: Klasse+Loader+data = Ebene | Verwenden Sie Level = Debugug für regelmäßige Informationen oder Level = Trace für zusätzliche Informationen. |
| SpurenafePointCleanuptime | -Xlog: safepoint+cleanup = info | Nicht anwendbar |
| Spuren | -Xlog: safepoint = debug | Nicht anwendbar |
| Tracemonitorinflation | -Xlog: monitorInflation = debug | Nicht anwendbar |
| TracebiasedLocking | -Xlog: biasedLocking = Level | Verwenden Sie Level = Info für reguläre Informationen oder Level = Trace für zusätzliche Informationen. |
| Traceredefineclasses | -Xlog: definieren Sie+Klasse neu*= Ebene | Level = Info, = Debug und = Trace bietet zunehmende Informationsmengen. |
Java9 vereint auch die Auswahl und die Ausgabe von GC -Protokoll in Xlog und kann gemäß der vom Beamten angegebenen Migrationstabelle migriert werden.