Este artigo estuda principalmente a migração dos parâmetros de log Java9 GC.
Registro que unifica JVM e GC
O Java9 introduziu uma estrutura de log unificada e também incluiu saída e configuração de log relacionadas ao GC.
JEP relacionado (proposta de aprimoramento JDK)
Xlog Sintaxe
-Xlog [: opção] opção: = [<why>] [: [<putert>] [: [<corators>] [: <puter-Options>]]] 'ajuda' 'desabilite' o quê: = <sector> [, ...] selector: = <gag-set> [*] [= <) 'stdout' [file =] <FileName> Decoradores: = <Corator> [, ...] 'nenhum' decorador: = tempo Uptime TimeMillis uptimemillis timenanos uptimenanos pid tid tags valor-opções: = <tutput_Option> [...] Uption: = FileCount = <File contagem> Arquivos>
O que
Configure principalmente a tag e o nível
marcação
Onde todos representam todas as tags, as outras são as seguintes:
Adicionar, idade, alocação, anotação, AOT, argumentos, anexar, barreira, lamblock, blocos, bot, ponto de interrupção, bytecode, censo, classe, classe Classhisto, limpeza, compactação, comparador, freio, constantpool, coops, cpu, dados, dados, defaultmethods, dmortes, ergo, ergo, gent Hashtables, Heap, Humongous, Ihop, Iklass, Init, Itables, JFR, JNI, JVMTI, Lividade, Carga, Carregador, Loging, Marca, Marking, Metadata, Metaspaces, Método, Módulos, Módulos, Monitoramento, Objectio, Objectaging, ObjectAgning, ObjectAgning, ObjectAgning, ObjectAgning, ObjectAg, NMAGSAG, NMOMIZING, OBSTAG, 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, Verificação, verificação, vmoperation, vtables, workgang
nível
Principalmente dividido, rastrear, depuração, informações, aviso, erro
saída
- stdout (`envia saída para stdout`)- stderr (` envia saída para stderr`)- arquivo = nome do arquivo (`envia a saída para os arquivos de texto`)
Existem três tipos como acima. Se você especificar um arquivo, poderá usar a variável %P para representar o PID da JVM atual e usar %t para representar o carimbo de hora inicial da JVM. por exemplo
-Xlog: GC: DemoApp-GC-%P-%T.Log
O nome do arquivo de saída é o seguinte:
DemoApp-GC-1678-2018-03-01_21-44-18.log
decoradores
Se não for especificado, o padrão é tempo de atividade, nível e tags. por exemplo
[3.080S] [info] [GC, CPU] GC (5) Usuário = 0,03S Sys = 0,00s real = 0,01s
Exemplo
-Xlog: gc = rastreio: file = gctrace.txt: uptimemillis, pid: fileCount = 5, fileSize = 1024
A tag é GC, Levle é rastreamento, arquivos de giro são 5, cada arquivo é 1m, o nome do arquivo é gctrace.txt, os decratadores são uptimemillis e pid
Instância de saída
[1110ms] [1867] GC (2) Observação de pausa 17m-> 17m (256m) 2,024ms [1110ms] [1867] GC (2) finalize dados ao vivo 0,000ms [1110ms] [1867] gc (2) pausam limpeza 17m-> 17m (256m) 0.177s [112s] 7.470ms [2951ms] [1867] GC (3) PAUSE Marca inicial (limite de metadados gc) 149m-> 30m (256m) 27.175ms [2951ms] [1867] GC (4) Ciclo simultâneo [2972ms] [1867] GC (4) Páuseas (4) Páuseas (4) Páuseas (2972ms] [1867] GC (4) Páuseas (4) Páuseas) 5.132ms [2974ms] [1867] GC (4) Finalize dados vivos 0,000ms [2974ms] [1867] GC (4) Cleapes de pausa 32m-> 32m (256m) 0,214ms [2976ms] [1867] GC (4) CHUCLO CONFORRENT 25.4220
Migração de parâmetros relacionados do antigo GC
| Bandeira Legada de Coleção de Garbage (GC) | Configuração do Xlog | Comentário |
|---|---|---|
| G1Printthe -Fregions | -Xlog: gc+região = rastreamento | Não aplicável |
| GCLOGFILESIZE | Nenhuma configuração disponível | A rotação do log é tratada pela estrutura. |
| NumberOfGCLOGFILES | Não aplicável | A rotação do log é tratada pela estrutura. |
| PrintAtaptivesizepolicy | -Xlog: ergo*= nível | Use um nível de depuração para a maioria das informações ou um nível de rastreamento para tudo o que foi registrado para o PrintAtiveSizepolicy. |
| PrintGC | -Xlog: gc | Não aplicável |
| PrintGCApplicationCurrentTime | -Xlog: SafePoint | Observe que o PrintGCApplicationCurrentTime e o PrintGCApplicationStopped Time estão registrados na mesma tag e não estão separados no novo log. |
| PrintGCApplicationStoppedtime | -Xlog: SafePoint | Observe que o PrintGCApplicationCurrentTime e o PrintGCApplicationStopped Time estão registrados na mesma tag e não são separados no novo log. |
| PrintGCCAUSE | Não aplicável | A causa gc agora está sempre registrada. |
| Printgcdatestamps | Não aplicável | Os selos de data são registrados pela estrutura. |
| PrintGCDetails | -Xlog: gc* | Não aplicável |
| Printgcid | Não aplicável | O GC ID agora está sempre registrado. |
| PrintGCTaskTimestamps | -Xlog: tarefa*= Debug | Não aplicável |
| Printgctimestamps | Não aplicável | Os carimbos de hora são registrados pela estrutura. |
| ImpresstheApatgc | -Xlog: gc+heap = rastreio | Não aplicável |
| PrintReferenceGC | -Xlog: ref*= Debug | Observe que, no registro antigo, o PrintReferenceGC teve um efeito apenas se o PrintGCDetails também estivesse ativado. |
| PrintStringDeduplicationStatistics | -Xlog: stringdedup*= Debug | Não aplicável |
| PrintTenuringDistribuição | -Xlog: idade*= nível | Use um nível de depuração para obter as informações mais relevantes ou um nível de rastreamento para tudo o que foi registrado para a distribuição de impressão. |
| UsegclogfileroTation | Não aplicável | O que foi registrado para a PrintTenuringDistribuição. |
Migração de parâmetros de tempo de execução herdados
| Sinalizador de tempo de execução legado | Configuração do Xlog | Comentário |
|---|---|---|
| TraceExceptions | -Xlog: exceções = informações | Não aplicável |
| Traceclassloading | -Xlog: classe+carga = nível | Use nível = informações para informações regulares ou nível = depuração para obter informações adicionais. Na sintaxe unificada de log de log, -verbose: classe é igual axlog: classe+load = info, classe+descarregamento = informações. |
| TRACECLASSLASSOLLOUNDINGPREDER | -Xlog: classe+pré -encomenda = depuração | Não aplicável |
| TraceclassunLoading | -Xlog: classe+descarregamento = nível | Use nível = informações para informações regulares ou nível = rastreamento para obter informações adicionais. Na sintaxe unificada de log de log, -verbose: classe é igual axlog: classe+load = info, classe+descarregamento = informações. |
| Verboseverificação | -Xlog: verificação = informações | Não aplicável |
| Traceclasspaths | -Xlog: classe+caminho = informações | Não aplicável |
| TraceclassResolution | -Xlog: classe+resolve = Debug | Não aplicável |
| Traceclassinitialização | -Xlog: classe+init = info | Não aplicável |
| Traceloaderansterapias | -Xlog: classe+carregador+restrições = informações | Não aplicável |
| TraceclassLoaderData | -Xlog: classe+carregador+dados = nível | Use nível = Debug para informações regulares ou nível = rastreamento para obter informações adicionais. |
| TraceSaFePointCleanuptime | -Xlog: SafePoint+Cleanup = Informações | Não aplicável |
| TraceSaFePoint | -Xlog: SafePoint = Debug | Não aplicável |
| Tracemonitorinflação | -Xlog: Monitorinflation = Debug | Não aplicável |
| Tracebiasedlocking | -Xlog: biasedLocking = nível | Use nível = informações para informações regulares ou nível = rastreamento para obter informações adicionais. |
| Traceredefineclasses | -Xlog: redefinir+classe*= nível | Nível = informações, = Debug e = Trace fornecem quantidades crescentes de informações. |
O Java9 também unifica a seleção e a saída do GC log no XLog e pode ser migrado de acordo com a tabela de migração fornecida pelo funcionário.