JVM内存性能调优思路之:通过GC log、Thread Dump 、Heap Dump分析内存使用说明

概述

在 Java 虚拟机中,(GC) Garbage collection log 垃圾收集日志、 Thread Dump 线程转储、( 储:代表存储到文件)和Heap Dump 堆转储用于分析应用程序的性能问题内存使用情况,通过分析这些文件我们能够找到程序性能瓶颈或给应用程序设定合适的内存。

本文关键词:

  1. OOM的定位
  2. 分析APP GC特性
  3. APP内存使用分布
  4. 某个线程状态ing

一. 各日志概述

1. Garbage Collection Log - 找到GC规律

什么是 GC Log?

GC 日志包含垃圾收集事件的相关信息。它将指示运行了多少 GC 事件、它们是什么类型的 GC 事件(即 Young GC 或 Full GC)、每个 GC 事件暂停应用程序的时间、每个 GC 事件回收了多少对象。

 

分析GC 日志能查看出什么问题 ?

GC的作用是回收不再使用的内存,以便程序有足够的内存继续运行。垃圾收集日志用于研究应用程序的 GC 和内存性能。它用于优化 GC 暂停时间,用于确定应用程序的最佳内存大小

  1. GC 活动频率:观察 GC 日志可以了解到各类型 GC 活动(例如 Minor GC、Major GC、Full GC)的发生频率和持续时间。频繁的 GC 活动可能会导致应用程序的性能下降,可以通过如下思路调优:

合理配置堆内存大小
减少对象的引用链
优化大对象的处理(例如手动管理内存或者使用专门的内存管理库)

  1. GC 效率:GC 日志中会记录每次 GC 活动的耗时和效率,包括停顿时间(Pause Time)、吞吐量(Throughput)等指标。通过分析这些指标,可以评估 GC 的性能,并针对性地调整 GC 策略和参数。
  2. GC 异常:GC 日志中还会记录一些异常情况,如 OutOfMemoryError、Metaspace OOM 等。这些异常可能会导致应用程序的崩溃或者异常终止,需要及时排查和处理。

 

2. 线程转储(Thread dump) - 分析(快照)线程状态

什么是 Thread dump?

线程转储是应用程序中在某个时间点上运行的所有线程的快照。它包含应用程序中每个线程的所有信息,例如: 线程状态、线程 Id、本机 Id、线程名称、堆栈跟踪、优先级。

 

线程转储

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

roman_日积跬步-终至千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值