2017-03-16 79 views
1

私はsolaris 10、Wildfly 10、java 1.8.0_66を使用しています。JVMのgcログがローテーションしない

私がいる限り、私は次のパラメータを設定すると、GCログを回転させるために考えた:

-XX:+UseGCLogFileRotation 
-XX:NumberOfGCLogFiles 
-XX:GCLogFileSize 
-Xloggc 

それが回転しなければなりません。

私はそれが回転しない

JAVA_OPTS="$JAVA_OPTS -XX:-HeapDumpOnOutOfMemoryError -verbosegc -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=50 -XX:GCLogFileSize=5K -XX:+PrintGCDateStamps -Xloggc:/mylocation/standalone/log/gc.log" 

するJVMのparamsを設定します。 gcログファイルを回転させるには、パラメータ-XX:+PrintGCDetailsを追加する必要があるようです。

私の理解は間違っていましたか?それとも回転しないように設定が欠けていましたか?

ありがとう、ヘレン

+0

あなたは、ファイルが作成され、何の回転が行われない意味し、「それが回転していない」とはどういう意味ですか?それとも、ファイルが作成されていないということですか? – Adonis

+0

最初のgcファイル 'gc.log.0.current'のみが作成され、ファイルサイズはgcログとともに増加します。 'gc.log.0.current'ファイルのサイズが5kを超えても、新しいファイルには回転しません。同じファイル' gc.log.0.current'を使用したままであり、ファイルサイズは増加し続けます。これまでに作成された他のgcファイルはありません。 – Helen

+0

gcログファイルの最小サイズは8Kと思われるので、5Kに設定すると、jvmはデフォルトの8Kに設定されます。 5Kで回転しない理由が考えられます。 – Helen

答えて

2

これはあなた自身ですでに分かっているようです。 GCLogFileSizeの方がJDKの最小値は8KBです。ここでは、関連するフラグメントがHotSpot sourcesからである:

if (UseGCLogFileRotation && (GCLogFileSize != 0) && (GCLogFileSize < 8*K)) { 
    FLAG_SET_CMDLINE(uintx, GCLogFileSize, 8*K); 
    jio_fprintf(defaultStream::output_stream(), 
       "GCLogFileSize changed to minimum 8K\n"); 
    } 
+0

また、oracleのドキュメント[here](http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#DebuggingOptions)を参照することもできます。 –

関連する問題