web-dev-qa-db-ja.com

jstatの結果の解釈

Jstatツールは初めてです。そのため、以下のサンプルを作成しました。

./jstat -gcutil -t 4001 5000
Timestamp         S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT
       565088.4   0.00   0.89  75.86  40.59  84.80    405    3.822     4    0.549    4.371
       565093.4   0.00   0.89  77.81  40.59  84.80    405    3.822     4    0.549    4.371
       565098.4   0.00   0.89  77.81  40.59  84.80    405    3.822     4    0.549    4.371
       565103.5   0.00   0.89  77.85  40.59  84.80    405    3.822     4    0.549    4.371
       565108.5   0.00   0.89  77.85  40.59  84.80    405    3.822     4    0.549    4.371
       565113.4   0.00   0.89  77.85  40.59  84.80    405    3.822     4    0.549    4.371


jstat -gc output

 S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT
704.0  704.0   0.4    0.0    6080.0   4013.8   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4016.6   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4135.4   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4135.4   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4135.4   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4135.4   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506

この結果は何を示していますか?どのメモリ問題が発生する可能性があるかを調べる列です。メモリリークなど.

28
new14

ドキュメントを参照してください:

https://docs.Oracle.com/javase/8/docs/technotes/tools/unix/jstat.html

基本的に、1行は1つの時点です。列には、JVMのメモリ領域(Survivor、Edenなど)に関するデータが表示されます。JVMの動作方法がわからないと、それらを理解することはできません。

たとえば、記事 若い世代のJVMガベージコレクション にはいくつかの説明があります。

JVMオブジェクト生成の仕組みの抜粋を次に示します

Edenは、新しいオブジェクトが作成された場所です。エデンがいっぱいになると、small GCが実行されます。オブジェクトへの参照がない場合、オブジェクトは削除されます。それ以外の場合は、生き残り、Survivorスペース(一度に使用されるサバイバースペースの1つのみ、他のスペースはそこにコピーされます)。

オブジェクトが一定数の前後コピーを生き残った場合、そのオブジェクトはOldスペースに移動されます。古いスペースがいっぱいの場合、Full GCが実行されますが、これはJVM内のすべてのオブジェクトに影響するため、はるかに重い操作です。

また、「メタデータ」(クラス記述子、フィールド、メソッド、...記述子)が格納されるPermanentスペースがあります。

24
gaborsch

gcutilは、使用率の観点から統計を提供します

-gcutil Option
Summary of Garbage Collection Statistics 
Column  Description
S0      Survivor space 0 utilization as a percentage of the space's current capacity.
S1      Survivor space 1 utilization as a percentage of the space's current capacity.
E       Eden space utilization as a percentage of the space's current capacity.
O       Old space utilization as a percentage of the space's current capacity.
P       Permanent space utilization as a percentage of the space's current capacity.
YGC     Number of young generation GC events.
YGCT    Young generation garbage collection time.
FGC     Number of full GC events.
FGCT    Full garbage collection time.
GCT     Total garbage collection time.

gcは、割り当てられたスペースと使用済みスペースに関する統計を提供します。

-gc Option
Garbage-collected heap statistics 
Column  Description
S0C     Current survivor space 0 capacity (KB).
S1C     Current survivor space 1 capacity (KB).
S0U     Survivor space 0 utilization (KB).
S1U     Survivor space 1 utilization (KB).
EC      Current eden space capacity (KB).
EU      Eden space utilization (KB).
OC      Current old space capacity (KB).
OU      Old space utilization (KB).
PC      Current permanent space capacity (KB).
PU      Permanent space utilization (KB).
YGC     Number of young generation GC Events.
YGCT    Young generation garbage collection time.
FGC     Number of full GC events.
FGCT    Full garbage collection time.
GCT     Total garbage collection time.

ソース: Docs

27
Aniket Thakur

この単純な オンラインjstatビジュアライザーツール を使用して、jstat GC統計をプロットします。

17
danixon