8

How can I see what garbage collector (CMS, Parallel and so on) is running by looking at gc logs for minor and major collection? I don't have access to the command line options set to java (the sysadm for the appserver wont let me see them). I do have rather verbose gc logs.

4

3 に答える 3

3

GC メッセージの正確な形式は、JVM のバージョンと JVM の設定によって異なります。GC チューニングに関する Oracle チュートリアルでサンプルを確認できます。

DefNewデフォルトのコレクターです。シリアルかパラレルのいずれかで、どちらが選択されるかは、やはり JVM のバージョン/設定によって異なります。を使用して、JDK 6 のデフォルト設定を確認できますjava -XX:+PrintCommandLineFlags -version。私のシステムでは、次のように出力されます。

-XX:MaxHeapSize=1073741824 -XX:ParallelGCThreads=4 -XX:+PrintCommandLineFlags -XX:+UseParallelGC

これは、Parallel GC がDefNew私に向いていることを意味します。このSOの質問を確認すると、その回答の1つがこのを参照しています。役立つかもしれません。

UPDATE JDK 6 のデフォルトの Old Gen GC は ParallelOldGCです。この啓発的な pdfを参照してください。-XX:+UseConcMarkSweepGC 特に、 JVM オプションを使用して、Old Gen GC を新しい Concurrent-mark-sweep GC に変更できます。

于 2012-11-01T09:20:56.527 に答える
2

チャーリー・ハントの本「Java Performance」を引用すると、GC ログで使用される若い世代のスペースの名前は、使用される GC によって変わります。

PSYoungGen => ParallelGC
ParNew =>  CMS
DefNew  => SerialGC

G1はよくわからん

于 2015-06-07T14:13:16.720 に答える
1

この記事では、すべての HotSpot JVM ガベージ コレクション アルゴリズムの GC ログ サンプルを見つけることができます。

-XX:+PrintGCDetailsGC ログでそのレベルの詳細を確認するには、有効にする必要があります。

于 2012-11-02T06:16:30.230 に答える