看懂gc日志
使用的是:+PrintGCDetails -XX:+PrintGCTimeStamps
输出的日志格式:
[Times: user=0.03 sys=0.00, real=0.01 secs]
363.375: [GC 363.375: [ParNew: 39424K->3249K(39424K), 0.0054790 secs]
69520K->37044K(126848K), 0.0055800 secs] 8.672: [Full GC 8.673: [Tenured: 26086K->30073K(87424K), 0.2213960 secs] 54718K->30073K(126848K),
[Perm : 37565K->37565K(37568K)], 0.2214900 secs] [Times: user=0.32 sys=0.01, real=0.23 secs]
[GC]和[Full GC]是垃圾回收的停顿类型,而不是区分是新生代还是年老代。- [
Full GC]说明发生了Stop-The-World。如果是调用System.gc()触发的,那么将显示的是[Full GC (System)。 - 【ParNew】,【
DefNew】, 【Tenured】, 【Perm】:表示 GC 发生的区域,区域的名称与使用的 GC 收集器相关。
- 【DefNew】:Serial 收集器中新生代名为 "Default New Generation"。
- 【ParNew】: “Parallel New Generation”。
- 【PSYoungGen】:对于 Parallel Scavenge 收集器,新生代名为 "PSYoungGen"。
- 年老代和永久代也相同,名称都由收集器决定。
4. 收集大小的影响:
- ParNew: 39424K->3249K(39424K) 表示 “GC 前该区域已使用容量 -> GC 后该区域已使用容量 (该区域内存总容量) ”。
- “69520K->37044K(126848K)”(方括号外) 表示 “GC 前Java堆已使用容量 -> GC后Java堆已使用容量 (Java堆总容量)”。
5. 花费时间: “0.0055800secs” 表示该区域GC所用时间,单位是秒。
6. [Times: user=0.32 sys=0.01, real=0.23 secs]
- user: 用户态消耗的CPU时间、
- sys:内核态消耗的CPU时间
- real: 操作从开始到结束所经过的墙钟时间。墙钟时间包括各种非运算的等待耗时,如IO等待、线程阻塞。CPU时间不包括等待时间,当系统有多核时,多线程操作会 叠加这些CPU时间,所以user或sys时间会超过real时间。
看懂gc日志的更多相关文章
- 一次CMS GC问题排查过程(理解原理+读懂GC日志)
这个是之前处理过的一个线上问题,处理过程断断续续,经历了两周多的时间,中间各种尝试,总结如下.这篇文章分三部分: 1.问题的场景和处理过程:2.GC的一些理论东西:3.看懂GC的日志 先说一下问题吧 ...
- [转]一次CMS GC问题排查过程(理解原理+读懂GC日志)
这个是之前处理过的一个线上问题,处理过程断断续续,经历了两周多的时间,中间各种尝试,总结如下.这篇文章分三部分: 1.问题的场景和处理过程:2.GC的一些理论东西:3.看懂GC的日志 先说一下问题吧 ...
- 一文看懂 K8s 日志系统设计和实践
上一篇中我们介绍了为什么需要一个日志系统.为什么云原生下的日志系统如此重要以及云原生下日志系统的建设难点,相信DevOps.SRE.运维等同学看了是深有体会的.本篇文章单刀直入,会直接跟大家分享一下如 ...
- 教你看懂 OpenStack 日志 - 每天5分钟玩转 OpenStack(29)
instance 从创建到删除的整个生命周期都是由 Nova 管理的. 后面各小节我们以 instance 生命周期中的不同操作场景为例,详细分析 Nova 不同组件如何协调工作,并通过日志分析加深大 ...
- O029、教你看懂OpenStack日志
参考https://www.cnblogs.com/CloudMan6/p/5456484.html instance 从创建到删除的整个生命周期都是有 Nova 管理的,后面各小节我们以inst ...
- 曹工杂谈:手把手带你读懂 JVM 的 gc 日志
一.前言 今天下午本来在划水,突然看到微信联系人那一个红点点,看了下,应该是博客园的朋友.加了后,这位朋友问了我一个问题: 问我,这两块有什么关系? 看到这段 gc 日志,一瞬间脑子还有点懵,嗯,这个 ...
- JVM基础系列第14讲:JVM参数之GC日志配置
说到 Java 虚拟机,不得不提的就是 Java 虚拟机的 GC(Garbage Collection)日志.而对于 GC 日志,我们不仅要学会看懂,而且要学会如何设置对应的 GC 日志参数.今天就让 ...
- java虚拟机(十一)--GC日志分析
GC相关:java虚拟机(六)--垃圾收集器和内存分配策略 java虚拟机(五)--垃圾回收机制GC 打印日志相关参数: -XX:+PrintGCDetails -XX:PrintGCTimestam ...
- JVM实用参数(八)GC日志
本系列的最后一部分是有关垃圾收集(GC)日志的JVM参数.GC日志是一个很重要的工具,它准确记录了每一次的GC的执行时间和执行结果,通过分析GC日志可以优化堆设置和GC设置,或者改进应用程序的对象分配 ...
随机推荐
- py基础3--函数,递归,内置函数
本节内容 函数基本语法及特性 参数与局部变量 返回值 嵌套函数 递归 匿名函数 函数式编程介绍 高阶函数 内置函数 1. 函数基本语法及特性 背景提要 现在老板让你写一个监控程序,监控服务器的系统状况 ...
- javascript如何判断是手机还是电脑访问本网页
var system ={}; var p = navigator.platform; system.win = p.indexOf("Win") == 0; system.mac ...
- Android开发入门——Button绑定监听事件三种方式
import android.app.Activity; import android.os.Bundle;import android.view.View;import android.widget ...
- 并发服务器和HTTP协议
单进程服务器 1. 完成一个简单的TCP服务器 from socket import * serSocket = socket(AF_INET, SOCK_STREAM) # 重复使用绑定的信息 se ...
- 温故而知新-strtok函数
温故而知新-strtok函数 记得之前没见过这个函数,是把字符串分割成更小的字符串 来个例子就是比较鲜明了 $string = "Hello world. Beautiful day tod ...
- Wasserstein距离 和 Lipschitz连续
EMD(earth mover distance)距离: 在计算机科学与技术中,地球移动距离(EMD)是一种在D区域两个概率分布距离的度量,就是被熟知的Wasserstein度量标准.不正式的说,如果 ...
- Go语言优势与劣势
Go语言的优势: 1.脚本化的语法:开发效率高,容易上手 2.静态类型+编译型,程序运行速度有保障:静态类型+编译型语言相对于动态类型+解释型语言的效率高 3.原生的支持并发编程:降低开发.维护成本/ ...
- JSTL的基本使用
<body> <% request.setAttribute("name", "lisi123"); request.setAttribute ...
- JavaWeb--过滤器Filter (一)
过滤器是在服务器上运行的,并且位于请求和响应中间起过滤功能的程序.其工作原理如下图所示: 在与过滤器相关联俄Servlet或JSP运行前,过滤器先执行.一个过滤器可以一个或多个Servlet或JS ...
- MYSQL TIMESTAMP with implicit DEFAULT value is deprecated.
TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp se ...