jvm 设置滚动记录GC日志

开启语句

JAVA_OPTS="-XX:+PrintGCDetails -XX:+PrintGCTimeStamps 
 -Xloggc:/Logs/**web/gc.log -XX:+UseGCLogFileRotation 
 -XX:NumberOfGCLogFiles=3 -XX:GCLogFileSize=512k"

参数详解

  1. -XX:UseGCLogFileRotation
    Enabled GC log rotation, requires -Xloggc.
    打开或关闭GC日志滚动记录功能,要求必须设置 -Xloggc参数

  2. -XX:NumberOfGCLogFiles
    Set the number of files to use when rotating logs, must be >= 1.
    The rotated log files will use the following naming scheme, <filename>.0, <filename>.1, ..., <filename>.n-1.
    设置滚动日志文件的个数,必须大于等于1
    日志文件命名策略是,<filename>.0, <filename>.1, ..., <filename>.n-1,其中n是该参数的值

  3. -XX:GCLogFileSize
    The size of the log file at which point the log will be rotated, must be >= 8K.
    设置滚动日志文件的大小,必须大于8k
    当前写日志文件大小超过该参数值时,日志将写入下一个文件

  4. -XX:+PrintGCDetails
    输出GC的详细日志

  5. -XX:+PrintGCTimeStamps
    输出GC的时间戳(以基准时间的形式)

日志实例

Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for linux-amd64 JRE (1.8.0_181-b13), built on Jul  7 2018 00:56:38 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
Memory: 4k page, physical 8193428k(3496440k free), swap 0k(0k free)
CommandLine flags: -XX:GCLogFileSize=524288 -XX:InitialHeapSize=4294967296 -XX:+ManagementServer -XX:MaxHeapSize=4294967296 -XX:NumberOfGCLogFiles=3 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseGCLogFileRotation -XX:+UseParallelGC 
42.198: [GC (Metadata GC Threshold) [PSYoungGen: 734017K->104550K(1223168K)] 734017K->104558K(4019712K), 0.1290021 secs] [Times: user=0.21 sys=0.04, real=0.13 secs] 
42.327: [Full GC (Metadata GC Threshold) [PSYoungGen: 104550K->0K(1223168K)] [ParOldGen: 8K->99343K(2796544K)] 104558K->99343K(4019712K), [Metaspace: 20690K->20690K(1069056K)], 0.2324920 secs] [Times: user=0.42 sys=0.04, real=0.24 secs] 
45.761: [GC (Metadata GC Threshold) [PSYoungGen: 233830K->23741K(1223168K)] 333173K->123085K(4019712K), 0.0325270 secs] [Times: user=0.04 sys=0.01, real=0.03 secs] 
45.794: [Full GC (Metadata GC Threshold) [PSYoungGen: 23741K->0K(1223168K)] [ParOldGen: 99343K->43223K(2796544K)] 123085K->43223K(4019712K), [Metaspace: 34569K->34569K(1081344K)], 0.0938388 secs] [Times: user=0.16 sys=0.00, real=0.09 secs] 
50.471: [GC (Allocation Failure) [PSYoungGen: 1048576K->52261K(1223168K)] 1091799K->95493K(4019712K), 0.0936524 secs] [Times: user=0.18 sys=0.00, real=0.09 secs] 
52.972: [GC (Allocation Failure) [PSYoungGen: 1100837K->132083K(1223168K)] 1144069K->175314K(4019712K), 0.1152273 secs] [Times: user=0.12 sys=0.04, real=0.11 secs] 
54.338: [GC (Metadata GC Threshold) [PSYoungGen: 269492K->50369K(1223168K)] 312723K->93600K(4019712K), 0.0515360 secs] [Times: user=0.09 sys=0.00, real=0.05 secs] 
54.389: [Full GC (Metadata GC Threshold) [PSYoungGen: 50369K->0K(1223168K)] [ParOldGen: 43231K->74678K(2796544K)] 93600K->74678K(4019712K), [Metaspace: 57882K->57882K(1101824K)], 0.3388499 secs] [Times: user=0.63 sys=0.00, real=0.34 secs] 
200.593: [GC (Allocation Failure) [PSYoungGen: 1048576K->112285K(1228800K)] 1123254K->186972K(4025344K), 0.0848518 secs] [Times: user=0.14 sys=0.00, real=0.08 secs] 
967.476: [GC (Allocation Failure) [PSYoungGen: 1193629K->158202K(1239552K)] 1268316K->390011K(4036096K), 0.1867644 secs] [Times: user=0.17 sys=0.06, real=0.19 secs] 
1784.942: [GC (Allocation Failure) [PSYoungGen: 1239546K->158194K(866816K)] 1471355K->567095K(3663360K), 0.1974644 secs] [Times: user=0.20 sys=0.06, real=0.20 secs] 
2350.420: [GC (Allocation Failure) [PSYoungGen: 866787K->247284K(948224K)] 1275688K->656193K(3744768K), 0.1324127 secs] [Times: user=0.19 sys=0.00, real=0.13 secs] 
2915.003: [GC (Allocation Failure) [PSYoungGen: 948212K->247882K(1002496K)] 1357121K->656799K(3799040K), 0.1264757 secs] [Times: user=0.18 sys=0.00, real=0.13 secs] 
3439.324: [GC (Allocation Failure) [PSYoungGen: 884810K->233402K(863744K)] 1293727K->642327K(3660288K), 0.1219719 secs] [Times: user=0.17 sys=0.00, real=0.13 secs] 

日志分析

例如:

1784.942: [GC (Allocation Failure) [PSYoungGen: 1239546K->158194K(866816K)] 
1471355K->567095K(3663360K), 0.1974644 secs] [Times: user=0.20 sys=0.06, real=0.20 secs] 

在1784.942时间点,年轻代进行了mini gc,从1239M经过垃圾收集后变为了158M
堆内存从1471M变为567M,堆最大内存为:3.6个G。
user=0.20代表所有cup使用的时间,这个时间比 real=0.20时间大,证明是多个线程进行垃圾回收。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,108评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,699评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,812评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,236评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,583评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,739评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,957评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,704评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,447评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,643评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,133评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,486评论 3 256
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,151评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,889评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,782评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,681评论 2 272