首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JVM性能调优--YGC

YGC YGC频次暂且忽略,问题主要集中在gc耗时上面。想要解决YGC耗时问题,首先要搞清楚YGC的耗时节点。...(据我所知的YGC问题,还没有逃出过这些维度) 存活对象扫描、标记时间 存活对象copy to S区,晋升到Old区 等待各线程到达安全点时间 GC日志输出 操作系统活动(swap) 1、等待线程到达安全点...如果有大量的本地缓存对象被创建,在其晋升到老年代之后,YGC会通过扫描card table来确认其是否存活,从而增加YGC的是存活对象标记时间。...reference:后台IO异常导致的GC异常 https://www.pianshen.com/article/5926239581/ 总结:YGC耗时问题可以说千奇百怪,但是万变不离其中,我们只要能够掌握...YGC的几个关键节点涉及的影响,从原理着手分析,应该是没有什么大问题的~

24620

JVM性能调优续--YGC

YGC YGC频次暂且忽略,问题主要集中在gc耗时上面。想要解决YGC耗时问题,首先要搞清楚YGC的耗时节点。...(据我所知的YGC问题,还没有逃出过这些维度) 存活对象扫描、标记时间 存活对象copy to S区,晋升到Old区 等待各线程到达安全点时间 GC日志输出 操作系统活动(swap) 1、等待线程到达安全点...如果有大量的本地缓存对象被创建,在其晋升到老年代之后,YGC会通过扫描card table来确认其是否存活,从而增加YGC的是存活对象标记时间。...reference:后台IO异常导致的GC异常 https://www.pianshen.com/article/5926239581/ 总结:YGC耗时问题可以说千奇百怪,但是万变不离其中,我们只要能够掌握...YGC的几个关键节点涉及的影响,从原理着手分析,应该是没有什么大问题的~ 「下一篇再填FGC的坑~」

95730
您找到你想要的搜索结果了吗?
是的
没有找到

YGC问题排查,又让我涨姿势了!

并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。...另外,如果不清楚YGC的流程,排查起来会更加困难。这里,我对YGC相关的知识点再做下梳理,方便大家更全面的理解YGC。...虽然标记整理算法也可以保证没有碎片,但是由于新生代要清理的对象数量很大,将存活的对象整理到待清理对象之前,需要大量的移动操作,时间复杂度比复制算法。 为什么新生代需要两个Survivor区?...YGC的触发时机 当Eden区空间不足时,就会触发YGC。...对象的年龄保存在Java对象头的mark word数据结构中(如果大家对Java并发锁熟悉,肯定了解这个数据结构,不熟悉的建议查阅资料了解下,这里不做展开)。

47750

YGC问题排查,又让我涨姿势了!

并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。...另外,如果不清楚YGC的流程,排查起来会更加困难。这里,我对YGC相关的知识点再做下梳理,方便大家更全面的理解YGC。 1. 5个问题重新认识新生代 ?...虽然标记整理算法也可以保证没有碎片,但是由于新生代要清理的对象数量很大,将存活的对象整理到待清理对象之前,需要大量的移动操作,时间复杂度比复制算法。 为什么新生代需要两个Survivor区?...YGC的触发时机 当Eden区空间不足时,就会触发YGC。...对象的年龄保存在Java对象头的mark word数据结构中(如果大家对Java并发锁熟悉,肯定了解这个数据结构,不熟悉的建议查阅资料了解下,这里不做展开)。

1.6K10

JVM的YGC,这次被它搞惨了!

由于该服务核心操作是查询数据库,且一次请求有40次DB query,遂首先排查是否慢sql导致,查看db性能监控,发现db 平均rt在0.3ms以内,可以算出来DB整体耗时在12ms左右,排除慢sql导致RT变。...开始怀疑,是否DB连接池在并发下出现排队,tddl默认的连接池大小是10.一查监控,整个占用的连接数从来没有超过7个,排除连接池不足的问题 ? 至此,造成RT的原因,在数据库层面被排除。...load长时间在4左右徘徊,我们的docker部署在4c8G的宿主机上,但是我们不能独占这个4C的,持续这么的load已经不正常了。...继续追查cpu load飙的原因,接着去看GC日志,发现大量的Allocation Failure,然后ParNew次数在每分钟100次以上,明显异常,见下GC日志例子 2020-03-25T16:16...频繁ParNewGC造成用户线程进入阻塞状态,让出CPU时间片,最终导致连接处理等待,接口的RT变

54841

Java 并发综合

曾经,我在面试Java研发实习生时最常听到的一句话就是: 搞Java怎么能不学并发呢? 没错,真的是经过了面试官的无数鄙视,我才知道Java并发编程在Java语言中的重要性。...并发编程 Java中如何创建一个线程 从面相接口的角度上讲,实际上只有一种方法实现Runable接口;但Thread类为线程操作提供了更多的支持,所以通常做法是实现Runable接口,实例化并传入Thread...每个Segment持有一个锁,通过分段加锁的方式,既实现了线程安全,又兼顾了性能 Java中有哪些实现并发编程的方法 要从最简单的答起,业界最常用的是重点,有新意就放在最后。...Java API强制要求这样做,如果你不这么做,你的代码会抛出IllegalMonitorStateException异常。还有一个原因是为了避免wait和notify之间产生竞态条件。...Java线程池中submit() 和 execute()方法有什么区别?

87330

Java 并发综合

曾经,我在面试Java研发实习生时最常听到的一句话就是: 搞Java怎么能不学并发呢? 没错,真的是经过了面试官的无数鄙视,我才知道Java并发编程在Java语言中的重要性。...并发编程 Java中如何创建一个线程 从面相接口的角度上讲,实际上只有一种方法实现Runable接口;但Thread类为线程操作提供了更多的支持,所以通常做法是实现Runable接口,实例化并传入Thread...每个Segment持有一个锁,通过分段加锁的方式,既实现了线程安全,又兼顾了性能 Java中有哪些实现并发编程的方法 要从最简单的答起,业界最常用的是重点,有新意就放在最后。...Java API强制要求这样做,如果你不这么做,你的代码会抛出IllegalMonitorStateException异常。还有一个原因是为了避免wait和notify之间产生竞态条件。...Java线程池中submit() 和 execute()方法有什么区别?

94560

杂谈Java并发

假定我们采用了同步机制或者数据库物理锁机制,如何保证1w个人还能同时看到有票,显然会牺牲性能,在并发网站中是不可取的。...常见的提高高并发下访问的效率的手段 首先要了解并发的的瓶颈在哪里?...java并发,如何解决,什么方式解决 之前我将并发的解决方法误认为是线程或者是队列可以解决,因为并发的时候是有很多用户在访问,导致出现系统数据不正确、丢失数据现象,所以想到 的是用队列解决,其实队列解决的方式也可以处理...中效率的类,比如ArrayList比Vector性能好。)...今天我所说的是并发。 我的解决思路是: 1、采用分布式应用设计 2、分布式缓存数据库 3、代码优化 Java并发的例子 具体情况是这样: 通过java和数据库,自己实现序列自动增长。

1.7K50

JVM 线上故障排查基本操作

原文地址:jianshu.com/p/bca5a49db4b7 前言 CPU 飚 内存问题排查 总结 前言 对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的。...各种 CPU 飚,内存溢出,频繁 GC 等等,这些都是令人头疼的问题。楼主同样也遇到过这些问题,那么,遇到这些问题该如何解决呢?...CPU 飚 线上 CPU 飚问题大家应该都遇到过,那么如何定位问题呢? 思路:首先找到 CPU 飚的那个 Java 进程,因为你的服务器会有多个 JVM 进程。...内存问题排查 说完了 CPU 的问题排查,再说说内存的排查,通常,内存的问题就是 GC 的问题,因为 Java 的内存由 GC 管理。...如果 YGC 时间过长呢?

44920

Java虚拟机线上问题排查的2个基本操作,你知不知道?

前言 对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的。各种 CPU 飚,内存溢出,频繁 GC 等等,这些都是令人头疼的问题。...CPU 飚 线上 CPU 飚问题大家应该都遇到过,那么如何定位问题呢? 思路:首先找到 CPU 飚的那个 Java 进程,因为你的服务器会有多个 JVM 进程。...当 Java 某一段代码执行次数超过10000次(默认)后,就会将该段代码从解释执行改为编译执行,也就是编译成机器码以提高速度。而这个 C2编译器就是做这个的。如何解决呢?...内存问题排查 说完了 CPU 的问题排查,再说说内存的排查,通常,内存的问题就是 GC 的问题,因为 Java 的内存由 GC 管理。...如果 YGC 时间过长呢?

94500
领券