- 2024-07-03线上的一次fullgc排查过程
线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力。同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验。 过去半年时间里,我们的广告系统出现了多次和GC相关的线上问题,有FullGC过于频繁的,有YoungGC耗时过长的,这些问
- 2024-07-01频繁FullGC问题
频繁FullGC(FullGarbageCollection)是Java应用中常见的问题,频繁的FullGC(垃圾收集)问题会导致应用程序性能下降、响应时间变长,甚至可能导致应用程序停滞。,它会导致系统性能急剧下降,甚至引发系统卡死。频繁FullGC的原因1.堆内存设置不合理和内存分配不合理Survivor区设
- 2024-04-28JVM_FullGC&YoungGC
概念JVM是JavaVirtualMachine(Java虚拟机)的缩写;JVM中的GC(GarbageCollection)是垃圾回收的缩写,是JVM的内存管理机制。YoungGC和FullGC是两种不同的GC算法。当新生代内存不够用时,YoungGC会发生,本质上YoungGC可以理解成jvm正常的扫垃圾过程;所以,YoungGC的出现
- 2024-03-24排查JVM问题思路
正常运行系统:1、可以使用jmap来查看JVM中各个区域的使用情况2、可以通过jstack来查看线程中的运行情况,比如哪些线程阻塞、是否出现了死锁。3、可以通过jstat命令来查看垃圾回收的情况,特别是fullgc,如果发现fullgc比较频繁,那么就得进行调优了4、通过各个命令的结果,或者jvisua
- 2024-03-01线上FullGC问题排查实践
一、问题发现与排查1.1找到问题原因问题起因是我们收到了jdos的容器CPU告警,CPU使用率已经达到104%观察该机器日志发现,此时有很多线程在执行跑批任务。正常来说,跑批任务是低CPU高内存型,所以此时考虑是FullGC引起的大量CPU占用(之前有类似情况,告知用户后重启应用后解决
- 2024-03-01FullGC详解
前言:背景:一、什么是JVM的GC?JVM(JavaVirtualMachine)。JVM是Java程序的虚拟机,是一种实现Java语言的解释器。 它提供了一种独立于操作系统的运行环境,使得Java程序在任何支持JVM的计算机上都可以运行。JVM负责加载、验证、解释、执行和垃圾回收Java字节代码,并为
- 2023-09-17记一次阿里云日志导致的服务宕机
导航引言火线告警,访问502猜测:I/O频繁惹的祸真相:FullGC突发高频导致程序崩溃移除阿里云日志,稳了结语最后参考引言技术人应该具备系统分析,并快速定位问题的能力。资深技术人需要具备的核心竞争力有哪些?系统分析,并快速定位问题的能力快速地理解需求,转化为流程,架
- 2023-08-25公司来了个大佬,把 FullGC 40 次/天优化为 10 天 1 次,太秀了~!
来源:https://heapdump.cn/article/1859160通过这一个多月的努力,将FullGC从40次/天优化到近10天才触发一次,而且YoungGC的时间也减少了一半以上,这么大的优化,有必要记录一下中间的调优过程。对于JVM垃圾回收,之前一直都是处于理论阶段,就知道新生代,老年代的晋升关系,这些知
- 2023-08-23当小白遇到FullGC
起初没有人在意这场GC,直到它影响到了每一天!前言本文记录了一次排查FullGC导致的TP99过高过程,介绍了一些排查时思路,线索以及工具的使用,希望能够帮助一些新手在排查问题没有很好的思路时,提供一些思路,让小白也能轻松解决FullGC问题,文中实际提到的参数配置不一定适合其他
- 2023-08-23当小白遇到FullGC | 京东云技术团队
起初没有人在意这场GC,直到它影响到了每一天!前言本文记录了一次排查FullGC导致的TP99过高过程,介绍了一些排查时思路,线索以及工具的使用,希望能够帮助一些新手在排查问题没有很好的思路时,提供一些思路,让小白也能轻松解决FullGC问题,文中实际提到的参数配置不一定适合其他业务场
- 2023-07-25频繁FullGC的原因竟然是“开源代码”
前言首先java语言的特性是不需像C和C++那样自己手动释放内存,因为java本身有垃圾回收机制(垃圾回收称为GC),顾名思义就是释放垃圾占用的空间,防止内存泄露。JVM运行时占用内存最大的空间就是堆内存,另外栈区和方法区也会占用空间但是占用有限本章就不探究了。那么堆中的空间又分为年轻
- 2023-07-25频繁FullGC的原因竟然是“开源代码”? | 京东云技术团队
前言首先java语言的特性是不需像C和C++那样自己手动释放内存,因为java本身有垃圾回收机制(垃圾回收称为GC),顾名思义就是释放垃圾占用的空间,防止内存泄露。JVM运行时占用内存最大的空间就是堆内存,另外栈区和方法区也会占用空间但是占用有限本章就不探究了。那么堆中的空间又分为年轻代
- 2023-06-27DataNode的FullGC的处理过程
背景:因公司每天中午11:08~11:40之间,DataNode所有的节点都会挂一会,主要是因为任务太过于集中的原因,在加上公司的HDFS的数据存储已经快达到了2P,DataNode的GC参数还是原来的4G,需要针对问题进行处理处理方案:先查看DataNode的GC情况jpsjstat-gcutil55336查看FGC有1574次1.先把集群
- 2023-06-23GC种类
youngGC(MinorGC):对新生代垃圾回收。新建对象一般放在新生代的Eden区进行分配,如果Eden区没有足够的空间就会触发youngGC。youngGC出发频率很频繁,回收速度也很快FullGC:回收整个新生代、老年代、永久代无用对象。FullGC较YoungGCstw时间更长至少10倍以上。FullGC触发条件:①在
- 2023-05-23Serverless冷扩机器在压测中被击穿问题
一、现象回顾在今天ForceBot全链路压测中,有位同事负责的服务做Serverless扩容(负载达到50%之后自动扩容并上线接入流量)中,发现新扩容的机器被击穿,监控如下(关注2:40-3:15时间段的数据),我们可以看到,超高CPU,频繁FullGC,并且每次FullGC之后对内存并不回收(见FullGC时间段对应的堆内存的曲
- 2023-05-05线上FullGC问题排查实践——手把手教你排查线上问题
作者:京东科技韩国凯一、问题发现与排查1.1找到问题原因问题起因是我们收到了jdos的容器CPU告警,CPU使用率已经达到104%观察该机器日志发现,此时有很多线程在执行跑批任务。正常来说,跑批任务是低CPU高内存型,所以此时考虑是FullGC引起的大量CPU占用(之前有类似情况,告知用户后重
- 2023-04-20一次线上JVM调优实践的优化过程
通过这一个多月的努力,将FullGC从40次/天优化到近10天才触发一次,而且YoungGC的时间也减少了一半以上,这么大的优化,有必要记录一下中间的调优过程。对于JVM垃圾回收,之前一直都是处于理论阶段,就知道新生代,老年代的晋升关系,这些知识仅够应付面试使用的。前一段时间,线上服务器的FullGC
- 2023-04-15【性能调优】总体指导
参考《java性能优化权威指南》 Java堆大小计算规则名称设置参数说明Java堆 -Xms和-Xmx 3-4倍FullGC后老年代空间量新生代 -Xmn 1-1.5倍FullGC后老年代空间量老年代 Java堆大小减新生代大小 2-3倍FullGC后老年代空间量永久代 -XX:permSize和-XX:MaxPermSize 1.2-1.5倍FullGC
- 2023-03-01浅析大促备战过程中出现的fullGc,我们能做什么?
作者:京东科技白洋##**前言:**```背景:为应对618、双11大促,消费金融侧会根据零售侧大促节奏进行整体系统备战。对核心流量入口承载的系统进行加固优化,排除系统风险,保证大
- 2023-02-05fullgc太频繁
“喜提”一个P2级故障—CMSGC太频繁,你知道这是什么鬼?转载自:[陶朱公Boy](javascript:void(0)
- 2023-01-06MinorGC和FullGC有什么不同
大多数情况下,对象在新生代中eden区分配。当eden区没有足够空间进行分配时,虚拟机将发起一次MinorGC。新生代GC(MinorGC):指发生新生代的垃圾收集动作,MinorGC非常频繁,回收速度一
- 2022-12-05线上服务异常的定位、处理与优化的探索 - 第七章 总结
一.1. 如何减少线上服务问题 1. GC部分v 尽早释放不使用的对象,特别注意一些复杂的数组、队列这些对象之间关系复杂相互引用,GC回收他们效率较低。如果程序允许,尽早将
- 2022-11-15jvm调优
对于JVM垃圾回收,之前一直都是处于理论阶段,就知道新生代,老年代的晋升关系,这些知识仅够应付面试使用的。前一段时间,线上服务器的FullGC非常频繁,平均一天40多次,而且隔几天就有
- 2022-11-07记录因Sharding Jdbc批量操作引发的一次fullGC
周五晚上告警群突然收到了一条告警消息,点开一看,应用fullGC了。于是赶紧联系运维下载堆内存快照,进行分析。内存分析使用MemoryAnalyzer打开堆文件mat下载地址:htt