2015-10-07 18 views
16

Ho un problema su alcuni server con il registro GC. E 'pieno di questo:Il log GC Java è pieno di caratteri strani

^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ 
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ 
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ 

notato questo avviene su server con una grande memoria dato alla JVM: -Xms32G -Xmx48G. Questa potrebbe essere una falsa pista ma pensò di parlarne.

Poiché si tratta di applicazioni a bassa latenza/alta produttività che analizzano il registro è fondamentale. Ma invece, è pieno di quei personaggi sopra.

Stiamo usando Java 8:

java version "1.8.0_40" 
Java(TM) SE Runtime Environment (build 1.8.0_40-b26) 
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode) 

Usiamo questo per creare il registro:

-verbose:gc 
-Xloggc:/path/to/gc.log 
-XX:+PrintGCDetails 
-XX:+PrintGCDateStamps 

Chiunque visto questo problema prima? Cosa potrebbe causarlo?

+0

come hai creato il log gc? usi la flag 'verbose: gc' o in altro modo? –

+0

@kucing_terbang: sì, ho aggiornato la domanda con le informazioni – bdem

+3

'^ @' è la notazione Unix/Linux per Ctrl- @, ASCII 0. Memoria normalmente azzerata come succede molto in java. –

risposta

1

Se il testo che si sta salvando è codificato con UTF-16, è possibile aggiungere un "^ @" in un normale file di testo. Ho avuto questo problema prima di aprire alcuni file codificati in sistemi UNIX.