Gc log parameter migration in Java 9 and java9gclog migration

Source: Internet
Author: User

Gc log parameter migration in Java 9 and java9gclog migration
Collation

This article mainly studies the migration of gc log parameters in Java 9.

Unified JVM and GC Logging

Java 9 introduces a unified log framework to include gc-related log output and configuration.

JEP (JDK Enhancement Proposal)

  • JEP 158: uniied JVM Logging
  • JEP 264: Platform Logging API and Service
  • JEP 271: uniied GC Logging

Xlog syntax

-Xlog[:option]  option     := [<what>][:[<output>][:[<decorators>][:<output-options>]]]            'help'            'disable'  what      := <selector>[,...]  selector    := <tag-set>[*][=<level>]  tag-set    := <tag>[+...]            'all'  tag      := name of tag  level     := trace            debug            info            warning            error  output     := 'stderr'            'stdout'            [file=]<filename>  decorators   := <decorator>[,...]            'none'  decorator   := time            uptime            timemillis            uptimemillis            timenanos            uptimenanos            pid            tid            level            tags  output-options := <output_option>[,...]  output-option := filecount=<file count>            filesize=<file size in kb>            parameter=value

What

It mainly configures the tag and level.

Tag

All indicates all tags, and the others are as follows:

add,age,alloc,annotation,aot,arguments,attach,barrier,biasedlocking,blocks,bot,breakpoint,bytecode,census,class,classhisto,cleanup,compaction,comparator,constraints,constantpool,coops,cpu,cset,data,defaultmethods,dump,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,mmu,modules,monitorinflation,monitormismatch,nmethod,normalize,objecttagging,obsolete,oopmap,os,pagesize,parser,patch,path,phases,plab,preorder,promotion,protectiondomain,purge,redefine,ref,refine,region,remset,resolve,safepoint,scavenge,scrub,setting,stackmap,stacktrace,stackwalk,start,startuptime,state,stats,stringdedup,stringtable,subclass,survivor,sweep,system,task,thread,time,timer,tlab,unload,update,verification,verify,vmoperation,vtables,workgang

Level

Mainly divided into off, trace, debug, info, warning, error

Output

- stdout(`Sends output to stdout`)- stderr(`Sends output to stderr`)- file=filename(`Sends output to text file(s)`)

If file is specified, the % p variable can be used to represent the pid of the current jvm, and % t can be used to represent the jvm startup timestamp. For example

-Xlog:gc:demoapp-gc-%p-%t.log

The output file name is as follows:

demoapp-gc-1678-2018-03-01_21-44-18.log

Decorators

  • Time -- Current time and date in ISO-8601 format
  • Uptime -- Time since the start of the JVM in seconds and milliseconds (e.g., 6.567 s)
  • Timemillis -- The same value as generated by System. currentTimeMillis ()
  • Uptimemillis -- Milliseconds since the JVM started
  • Timenanos -- The same value as generated by System. nanoTime ()
  • Uptimenanos -- Nanoseconds since the JVM started
  • Pid -- The process identifier
  • Tid -- The thread identifier
  • Level -- The level associated with the log message
  • Tags -- The tag-set associated with the log message

If this parameter is not specified, the default value is uptime, level, and tags. For example

[3.080s][info][gc,cpu ] GC(5) User=0.03s Sys=0.00s Real=0.01s

Instance

-Xlog:gc=trace:file=gctrace.txt:uptimemillis,pid:filecount=5,filesize=1024

Tagis gc, levleis trace, rotatefile number is 5, each file is 1 m, the file name is gctrace.txt, decrotators is uptimemillis and pid

Output instance

[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 Initial Mark (Metadata GC Threshold) 149M->30M(256M) 27.175ms[2951ms][1867] GC(4) Concurrent Cycle[2972ms][1867] GC(4) Pause Remark 32M->32M(256M) 5.132ms[2974ms][1867] GC(4) Finalize Live Data 0.000ms[2974ms][1867] GC(4) Pause Cleanup 32M->32M(256M) 0.214ms[2976ms][1867] GC(4) Concurrent Cycle 25.422ms
Migration

Migration of GC-related parameters in earlier versions

Legacy Garbage Collection (GC) Flag Xlog Configuration Comment
G1PrintHeapRegions -Xlog: gc + region = trace Not Applicable
GCLogFileSize No configuration available Log rotation is handled by the framework.
NumberOfGCLogFiles Not Applicable Log rotation is handled by the framework.
PrintAdaptiveSizePolicy -Xlog: ergo * = level Use a level of debug for most of the information, or a level of trace for all of what was logged for PrintAdaptiveSizePolicy.
PrintGC -Xlog: gc Not Applicable
PrintGCApplicationConcurrentTime -Xlog: safepoint Note that PrintGCApplicationConcurrentTime and PrintGCApplicationStoppedTime are logged on the same tag and aren't separated in the new logging.
PrintGCApplicationStoppedTime -Xlog: safepoint Note that PrintGCApplicationConcurrentTime and PrintGCApplicationStoppedTime are logged on the same tag and not separated in the new logging.
PrintGCCause Not Applicable GC cause is now always logged.
PrintGCDateStamps Not Applicable Date stamps are logged by the framework.
PrintGCDetails -Xlog: gc * Not Applicable
PrintGCID Not Applicable Gc id is now always logged.
PrintGCTaskTimeStamps -Xlog: task * = debug Not Applicable
PrintGCTimeStamps Not Applicable Time stamps are logged by the framework.
PrintHeapAtGC -Xlog: gc + heap = trace Not Applicable
PrintReferenceGC -Xlog: ref * = debug Note that in the old logging, PrintReferenceGC had an effect only if PrintGCDetails was also enabled.
PrintStringDeduplicationStatistics -Xlog: stringdedup * = debug Not Applicable
PrintTenuringDistribution -Xlog: age * = level Use a level of debug for the most relevant information, or a level of trace for all of what was logged for PrintTenuringDistribution.
UseGCLogFileRotation Not Applicable What was logged for PrintTenuringDistribution.

Parameter migration in earlier versions

Legacy Runtime Flag Xlog Configuration Comment
TraceExceptions -Xlog: exceptions = info Not Applicable
TraceClassLoading -Xlog: class + load = level Use level = info for regular information, or level = debug for additional information. in uniied Logging syntax,-verbose: class equals-Xlog: class + load = info, class + unload = info.
TraceClassLoadingPreorder -Xlog: class + preorder = debug Not Applicable
TraceClassUnloading -Xlog: class + unload = level Use level = info for regular information, or level = trace for additional information. in uniied Logging syntax,-verbose: class equals-Xlog: class + load = info, class + unload = info.
VerboseVerification -Xlog: verification = info Not Applicable
TraceClassPaths -Xlog: class + path = info Not Applicable
TraceClassResolution -Xlog: class + resolve = debug Not Applicable
TraceClassInitialization -Xlog: class + init = info Not Applicable
TraceLoaderConstraints -Xlog: class + loader + constraints = info Not Applicable
TraceClassLoaderData -Xlog: class + loader + data = level Use level = debug for regular information or level = trace for additional information.
TraceSafepointCleanupTime -Xlog: safepoint + cleanup = info Not Applicable
TraceSafepoint -Xlog: safepoint = debug Not Applicable
TraceMonitorInflation -Xlog: monitorinflation = debug Not Applicable
TraceBiasedLocking -Xlog: biasedlocking = level Use level = info for regular information, or level = trace for additional information.
TraceRedefineClasses -Xlog: redefine + class * = level Level = info, = debug, and = trace provide increasing amounts of information.

Summary

Java 9 unifies the selection and output of gc logs into Xlog, which can be migrated according to the migration table officially provided.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.