Step1、找出所查java應用的進程編號
jps -mlv | grep 應用名稱 # 或者 ps -ef | grep 應用名稱
20848 com.lqz.test.Main -Dprogram=APP_/home/lqz/test/bin/.. -Xms4G -Xmx4G
Step2、查看應用的gc概況
-
$ jstat -gcutil 20848 250 10
-
S0 S1 E O P YGC YGCT FGC FGCT GCT
-
56.25 0.00 52.10 34.51 39.51 469204 5176.817 549 111.738 5288.555
-
56.25 0.00 52.10 34.51 39.51 469204 5176.817 549 111.738 5288.555
-
56.25 0.00 52.10 34.51 39.51 469204 5176.817 549 111.738 5288.555
-
56.25 0.00 52.10 34.51 39.51 469204 5176.817 549 111.738 5288.555
-
56.25 0.00 52.10 34.51 39.51 469204 5176.817 549 111.738 5288.555
-
56.25 0.00 52.10 34.51 39.51 469204 5176.817 549 111.738 5288.555
-
56.25 0.00 52.10 34.51 39.51 469204 5176.817 549 111.738 5288.555
-
56.25 0.00 52.10 34.51 39.51 469204 5176.817 549 111.738 5288.555
-
56.25 0.00 54.10 34.51 39.51 469204 5176.817 549 111.738 5288.555
-
56.25 0.00 56.11 34.51 39.51 469204 5176.817 549 111.738 5288.555
-
$
jstat 詳細用法:jstat - Java Virtual Machine Statistics Monitoring Tool,更多的java工具:JDK Tools and Utilities,更多jdk文檔,請進入傳送門。
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]
-
-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.
Step3、查看應用的運行時間
-
$ ps -p 20848 -o etime
-
ELAPSED
-
7-12:41:04
-
$
ps -p pid -o etime
-
CODE HEADER DESCRIPTION
-
etime ELAPSED elapsed time since the process was started, in the form [[dd-]hh:]mm:ss.
Step4、計算ygc的平均耗時和時間間隔
ygc平均耗時=YGCT/YGC(s)=5176.81/469204=0.011s=11ms
ygc時間間隔=YGC/程序的運行時間=469204/(7*24*60*60 + 12*60*60 + 41*60 + 4 )=0.72s
如果各項參數設置合理,系統沒有超時日志出現,GC頻率不高,GC耗時不高,那么沒有必要進行GC優化;如果GC時間超過1〜3 秒,或者頻繁G C ,則必須優化。如果滿足下面的指標,則一般不需要進行GC:
■ Minor GC執行時間不到50ms;
■ Minor GC執行不頻繁,約10秒一次;
■ Full GC執行時間不到1s;
■ Full GC執行頻率不算頻繁,不低於10分鍾1次。