GC日志查看及分析实例

2024-09-01 09:28
文章标签 分析 日志 查看 实例 gc

本文主要是介绍GC日志查看及分析实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、GC日志格式

<start>: GC <before> K -> <after> k (<heap>K) , <total> ms

参数说明:

<start> GC的开始时间(秒),以JVM启动开始计算
<before> 回收前对象所使用的内存(KB)
<after> 回收后对象所使用的内存(KB)
<heap> 当前JVM的堆大小
<total> 执行回收的总时间

二、MAT工具

Eclipse Memory Analyzer Tool 原名SAP Memory Analyzer (免费离线)
特性:离线分析 需要得到JDK的内存镜像(heapdump)

 heapdump获取方式:通过jdk安装时自带的jmap命令获取:$JAVA_HOME/bin/jmap -dump:format=b,file=$APP_HOME/dumpName.hprof [Pid]jdk1.8及之后:jmap -dump:live, format=b, file=heap.bin <Pid>

使用:
File - Open Heap Dump[Overview] - Leak Suspects (有问题的对象) - See stacktrace(看堆栈信息)
File - Open Heap Dump[Overview] - Dominator Tree(对象里面的详细内容)

下载地址:链接:https://pan.baidu.com/s/1Jbm1SHSu1qNpi_PuhJ5xpg 提取码:xzb6

在这里插入图片描述

三、生产环境内存问题分析实例

1.Weblogic的GC频繁报警分析:STATUS=Warning Eden=100 FGC=40 Old=99 YGC=0
2.处理过程:
① 使用工具箱收集HeapDump和ThreadDump
② 重启告警服务
③ 验证服务是否正常(恢复正常)
3.时间分析
① 用MAT分析HeapDump文件,发现线程A占用内存较大。在执行sockRead0读操作,进一步看线程信息,queryForList()执行查询sql
② 通过dominator-tree 视图发现共有100w个对象占用接近50%的内存空间
③ 通过分析代码,发现查询的数据库中数据量比上一个月新增接近50倍
4. 时间规避和优化
将该服务的堆内存扩大

这篇关于GC日志查看及分析实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126544

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

开启mysql的binlog日志步骤详解

《开启mysql的binlog日志步骤详解》:本文主要介绍MySQL5.7版本中二进制日志(bin_log)的配置和使用,文中通过图文及代码介绍的非常详细,需要的朋友可以参考下... 目录1.查看是否开启bin_log2.数据库会把日志放进logs目录中3.查看log日志总结 mysql版本5.71.查看

mysqld_multi在Linux服务器上运行多个MySQL实例

《mysqld_multi在Linux服务器上运行多个MySQL实例》在Linux系统上使用mysqld_multi来启动和管理多个MySQL实例是一种常见的做法,这种方式允许你在同一台机器上运行多个... 目录1. 安装mysql2. 配置文件示例配置文件3. 创建数据目录4. 启动和管理实例启动所有实例

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创