2016-12-01 10 views
0

これは、GC詳細ログで、ConcMarkSweepGCで印刷されています。このログでは、このGarbageCollectionでどれくらいの領域が収集されるかはわかりません。ConcMarkSweepGCはどれくらいのスペースを収集しますか?

私の現在のJAVA_OPTSは、私は本当にこのGarbageCollectionに収集することができるどのくらいのスペースを知ることができないでください -XX:+UseConcMarkSweepGC -Xloggc:/home/admin/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps

のですか?

私のは、JAVA_OPTSに問題がありますか?

ログは:以下のような日付スタンプとともにGC::uは一度試してみて確認してくださいでき

2016-11-28T20:19:22.937+0800: 357765.356: [GC (CMS Initial Mark) [1 CMS-initial-mark: 1734329K(2097152K)] 1925288K(4019584K), 0.0715106 secs] [Times: user=0.24 sys=0.00, real=0.08 secs] 
2016-11-28T20:19:23.010+0800: 357765.429: [CMS-concurrent-mark-start] 
2016-11-28T20:19:23.826+0800: 357766.246: [CMS-concurrent-mark: 0.815/0.817 secs] [Times: user=0.95 sys=0.04, real=0.81 secs] 
2016-11-28T20:19:23.827+0800: 357766.246: [CMS-concurrent-preclean-start] 
2016-11-28T20:19:23.840+0800: 357766.260: [CMS-concurrent-preclean: 0.013/0.014 secs] [Times: user=0.02 sys=0.00, real=0.02 secs] 
2016-11-28T20:19:23.840+0800: 357766.260: [CMS-concurrent-abortable-preclean-start] 
CMS: abort preclean due to time 2016-11-28T20:19:29.079+0800: 357771.499: [CMS-concurrent-abortable-preclean: 5.229/5.239 secs] [Times: user=5.63 sys=0.11, real=5.24 secs] 
2016-11-28T20:19:29.081+0800: 357771.500: [GC (CMS Final Remark) [YG occupancy: 374645 K (1922432 K)]2016-11-28T20:19:29.081+0800: 357771.501: [Rescan (parallel) , 0.2260699 secs]2016-11-28T20:19:29.307+0800: 357771.727: [weak refs processing, 0.0007908 secs]2016-11-28T20:19:29.308+0800: 357771.727: [class unloading, 0.0830640 secs]2016-11-28T20:19:29.391+0800: 357771.811: [scrub symbol table, 0.0242131 secs]2016-11-28T20:19:29.415+0800: 357771.835: [scrub string table, 0.0032310 secs][1 CMS-remark: 1734329K(2097152K)] 2108975K(4019584K), 0.3421430 secs] [Times: user=1.00 sys=0.00, real=0.34 secs] 
2016-11-28T20:19:29.424+0800: 357771.843: [CMS-concurrent-sweep-start] 
2016-11-28T20:19:30.204+0800: 357772.623: [CMS-concurrent-sweep: 0.780/0.780 secs] [Times: user=0.86 sys=0.01, real=0.78 secs] 
2016-11-28T20:19:30.204+0800: 357772.623: [CMS-concurrent-reset-start] 
2016-11-28T20:19:30.214+0800: 357772.633: [CMS-concurrent-reset: 0.010/0.010 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] 

答えて

0

あなたのJVMオプションが良いです。しかし、CMSは同時に動作しており、サイクルの最後に古い世代の最終サイズを表示しません。

若いGCレポートを参照すると、CMSスイープが完了した後に古い領域にどれだけのメモリが占​​有されているかを確認する必要があります。

12.515: [GC (Allocation Failure) 12.515: [ParNew: 34805K->3103K(38080K), 0.0039903 secs] 134805K->103463K(122752K), 0.0040432 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 

若いGC後の古いスペースの使用は、103463K - 3103K = 100360Kです。

並行リセット後の最後の若いGCと最初の若いGCとの間の古いスペースサイズの差を計算することによって、再計算されたメモリサイズを計算できます。

また、優れたGCViewerツールを使用してログを視覚化することもできます。

GCログの詳細については、hereをご覧ください。

0

OpenJDKの8:-XX:+PrintHeapAtGC

OpenJDKの9:-Xlog:gc,heap+gcによる新しい統合ログシステムへ

関連する問題