-XX:+PrintGCTimeStamps -XX:+PrintGCDetails 日志分析
-XX:+PrintGCTimeStamps输出格式:
289.556: [GC [PSYoungGen: 314113K->15937K(300928K)] 405513K->107901K(407680K), 0.0178568 secs] [Times: user=0.06 sys=0.00, real=0.01 secs]
293.271: [GC [PSYoungGen: 300865K->6577K(310720K)] 392829K->108873K(417472K), 0.0176464 secs] [Times: user=0.06 sys=0.00, real=0.01 secs]
详解:
293.271是从jvm启动直到垃圾收集发生所经历的时间,GC表示这是一次Minor GC(新生代垃圾收集);[PSYoungGen: 300865K->6577K(310720K)] 提供了新生代空间的信息,PSYoungGen,表示新生代使用的是多线程垃圾收集器Parallel Scavenge。300865K表示垃圾收集之前新生代占用空间,6577K表示垃圾收集之后新生代的空间。新生代又细分为一个Eden区和两个Survivor区,Minor GC之后Eden区为空,6577K就是Survivor占用的空间。
括号里的310720K表示整个年轻代的大小。
392829K->108873K(417472K),表示垃圾收集之前(392829K)与之后(108873K)Java堆的大小(总堆417472K,堆大小包括新生代和年老代)
由新生代和Java堆占用大小可以算出年老代占用空间,如,Java堆大小417472K,新生代大小310720K那么年老代占用空间是417472K-310720K=106752k;垃圾收集之前老年代占用的空间为392829K-300865K=91964k 垃圾收集之后老年代占用空间108873K-6577K=102296k.
0.0176464 secs表示垃圾收集过程所消耗的时间。
[Times: user=0.06 sys=0.00, real=0.01 secs] 提供cpu使用及时间消耗,user是用户模式垃圾收集消耗的cpu时间,实例中垃圾收集器消耗了0.06秒用户态cpu时间,sys是消耗系统态cpu时间,real是指垃圾收集器消耗的实际时间。
-XX:+PrintGCDetails输出格式:
293.289: [Full GC [PSYoungGen: 6577K->0K(310720K)]
[PSOldGen: 102295K->102198K(134208K)] 108873K->102198K(444928K)
[PSPermGen: 59082K->58479K(104192K)], 0.3332354 secs]
[Times: user=0.33 sys=0.00, real=0.33 secs]
说明:
Full GC表示执行全局垃圾回收
[PSYoungGen: 6577K->0K(310720K)] 提供新生代空间信息,解释同上
[PSOldGen: 102295K->102198K(134208K)]提供了年老代空间信息;
108873K->102198K(444928K)整个堆空间信息;
[PSPermGen: 59082K->58479K(104192K)]提供了持久代空间信息。
************************************jdk 1.8 ***************************************
928.242: [GC (Allocation Failure) [PSYoungGen: 1253249K->30225K(1289728K)]1779754K->556738K(2020864K), 0.0356346 secs] [Times: user=0.11 sys=0.00, real=0.03 secs]
931.770: [GC (Allocation Failure) [PSYoungGen: 1260049K->58346K(1269760K)]1786562K->605128K(2000896K), 0.0383538 secs] [Times: user=0.23 sys=0.01, real=0.04 secs]
935.178: [GC (Allocation Failure) [PSYoungGen: 1269738K->74746K(1286144K)]1816520K->628896K(2017280K), 0.0545040 secs] [Times: user=0.23 sys=0.00, real=0.06 secs]
938.592: [GC (Allocation Failure) [PSYoungGen: 1286138K->74730K(1234944K)]1840288K->634580K(1966080K), 0.0466145 secs] [Times: user=0.23 sys=0.00, real=0.05 secs]
(Allocation Failure) 是 触发原因,内存分配失败 Yong 区!
[Full GC (System.gc()) [PSYoungGen: 64606K->0K(1250304K)] [ParOldGen: 560282K->70636K(731136K)]
624888K->70636K(1981440K), [Metaspace: 80870K->80870K(1122304K)], 0.3997928 secs]
[Times: user=1.22 sys=0.02, real=0.40 secs]
这是fullGC 触发原因系统调用 jvm 退出
704.975: [Full GC (Ergonomics) [PSYoungGen: 113660K->0K(1078272K)]
[ParOldGen: 608998K->319617K(731136K)] 722659K->319617K(1809408K),[Metaspace: 78468K->78468K(1120256K)], 0.7647321 secs] [Times: user=3.06 sys=0.06, real=0.77 secs]
这是fullGC 触发原因系统调用,表示JVM内部环境认为此时可以进行一次垃圾收集。
97.172: [Full GC (Metadata GC Threshold) [PSYoungGen: 19117K->0K(1314304K)]
[ParOldGen: 92121K->102831K(393728K)] 111239K->102831K(1708032K),
[Metaspace: 57037K->57037K(1101824K)], 0.7376882 secs] [Times: user=2.40 sys=0.03, real=0.74 secs]
这是fullGC 触发原因元空间不足,方法区
14.622: [Full GC (Metadata GC Threshold) [PSYoungGen: 22862K->0K(1009152K)][ParOldGen: 74731K->84004K(307712K)] 97593K->84004K(1316864K),[Metaspace: 34473K->34473K(1081344K)], 0.2161652 secs] [Times: user=0.87 sys=0.01, real=0.21 secs]
这是fullGC 触发原因元空间不足,方法区
392.288: [Full GC [PSYoungGen: 33356K->0K(943104K)] [ParOldGen: 63939K->65555K(659968K)]
97295K->65555K(1603072K) [PSPermGen: 37621K->33623K(74240K)], 0.2658880 secs][Times: user=0.88 sys=0.00, real=0.27 secs]
这是fullGC 触发原因老年区
-XX:+PrintGCTimeStamps -XX:+PrintGCDetails 日志分析相关推荐
- 9开启线程日志_GC 日志分析
GC 日志分析 首先,如果需要查看 GC 日志,需要在 jvm 参数中加入如下参数 -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:d:/GClo ...
- GC之七--gc日志分析工具
性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...
- Java中GC (Allocation Failure)日志分析实战
概述 博主在最近使用spring batch的过程当中遇到了内存容量耗尽程序崩溃的问题,于是决定将此次的内存问题分析通过本篇博客记录下来. 在分析gc日实例志之前,我们先通过一条<深入理解jav ...
- java8 GC日志分析
@[toc] 前言 最近学习分析了一下java8的GC日志,顺便记录下来,忘性太大了 背景: java version "1.8.0_144" Java(TM) SE Runtim ...
- java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:MaxGCPauseMillis=100/虚拟机调优
转自:https://www.cnblogs.com/shanheyongmu/p/5775003.html JVM的堆的内存, 是通过下面面两个参数控制的 -Xms 最小堆的大小, 也就是当你的虚拟 ...
- 可视化GC日志分析工具
许多人的努力,只是为了欺骗自己和做给别人看的而已.他们都只是看起来很努力而已. 概述 本章給大家推荐一款web可视化分析GC日志工具 准备测试代码 public class TestGC {// 实现 ...
- 内存与垃圾回收——(十二)GC 日志分析
文章目录 12_GC 日志分析 12.1_GC 常用参数 12.2_日志补充说明 12.3_举例解读日志中堆空间数据 12.4_日志分析工具 12_GC 日志分析 12.1_GC 常用参数 通过阅读 ...
- 第 17 章 一 G1回收器(重点)、垃圾回收器总结(重要)、GC日志分析、垃圾回收器的新发展(了解)
由于篇幅, 无缝衔接上篇博客 ! 7.G1 回收器 (重重点):区域化分代式 (并行回收器) JDK9的默认垃圾回收器 7.1.为什么还需要 G1 在延迟可控的情况下, 尽可能获取高的吞吐量 采用标记 ...
- 【JVM】JVM参数性能调优 -Xms -Xmx -Xmn -XX:NewRatio -XX:SurvivorRatio
原文链接: http://unixboy.iteye.com/blog/174173/ 上图来自:https://blog.csdn.net/jakeswang/article/details/105 ...
- tomcat 启动参数 Xms, Xmx, XX:MaxNewSize, XX:PermSize, -XX:MaxPermSize, Djava.awt.headless
在 tomcat/bin/catalina.sh 的 第一行#!/bin/sh 下添加 JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MaxNewSiz ...
最新文章
- oracle比较好的链接记录
- 【ARM】Tiny4412裸板编程之异常(软中断)
- maven打包pom.xml备忘
- linux命令看文件内容,Linux文件内容查看相关命令
- 五皇后问题 java_Java的5个古怪问题
- gulp教程之gulp-minify-css【gulp-clean-css】
- CodeFileBaseClass 属性
- MySQL MVCC 概述
- 使用MySQL处理百万级以上数据时,几个好习惯常识
- 悟空问答 模板 html,悟空问答上首页技巧每小时2500个阅读快速为自己吸粉.pdf
- github 仓库管理及代码上传
- bat计算机清理原理,电脑清理系统垃圾bat的操作步骤
- 硬件科普系列之内存篇
- autoCAD 使用图层、颜色和线型
- utc时间 单位换算_国际时间换算
- 代码评审这点事,元芳你怎么看
- csu1337 搞笑版费马大定理
- Java 基础篇:第十九章:多线程
- 解决“此实现不是 Windows 平台 FIPS 验证的加密算法的一部分”
- 如何维持手机电池寿命_延长iPhone 手机电池寿命的几个方法