`

JVM的GC

 
阅读更多
我们有一个要求非常高性能的应用,其实也是部署在一台普通的PE2850上面。4CPU,内存8G,JVM的heap开了5G,其中新生代为1.5G。在高峰期每秒超过5000次调用,约3秒就需要minor GC一次,每次停顿约0.3秒。隔十分钟左右就要Full GC一次,需要停顿约10秒。有点受不了。这样相当于每隔3秒应用就要停顿0.3秒,每隔10分钟就要停顿10秒。也改成CMS试过,Full GC的停顿会减少,但minor GC照样。这样的效果,对于一些高性能的应用来算,GC可能真是无法承受之重
引用
1、GC这么频繁也很有可能是代码质量问题。我们前段时间一个服务用Java写的,刚上线也是GC极其频繁,2分钟就Full GC一次,每次FullGC要2-3秒,后来进行了代码优化,把频繁申请释放的资源进行了缓存,负载立刻降低,2个多小时才Full GC一次,每次FullGC只要0.3秒。

2、你的Heap开得太大了,GC无可避免的要很慢,Heap建议最大就2GB,不要再大了。

3、如果你内存和CPU资源比较空闲,更好的办法是启动多个JVM进程做个垂直群集。这样每个JVM进程的负载会被分散,Heap也不用开的那么大了,GC也仅仅打断当前进程,而其他进程照样正常处理请求。所以说鸡蛋不必都放在一个篮子里面。

引用
1、heap肯定大了,调小
2、肯定要采用cms
3、适当增大新生代的比例
4、设置XX:MaxTenuringThreshold,这个参数用来设置新生代对象撑过多少轮minor gc才进入年老代,默认是0,也就是说直接进入年老大,触发full gc的频率大大增加。

引用
full gc 肯定要stop-the-whole-world的,它要遍历整个对象网络这是所有有垃圾收集器的语言无法避免的问题。minor GC也是stop-the-whole-world

引用
因为minor gc一般是用copying collector,对象会被移动,基本上必须stop world
而full gc一般是mark sweep collector,这个不移动对象,可以并行的
分享到:
评论

相关推荐

    JVM GC原理深入学习.pdf

    本文档可以作为学习JVM GC的工具书所使用,对于想深入学习JVM GC原理的同学,这一本书就足够了。因为本文档是作者花费数月时间,查阅GC相关的国内外众多资料并加以思路清晰的条目化而形成。因为篇幅所限,可能有部分...

    jvmgc过程介绍

    jvmgc过程介绍(jpg)

    JVM GC垃圾回收.pdf

    JVM GC垃圾回收.pdf

    JvmGC收集器

    JvmGC收集器 在 Java 虚拟机中,GC(Garbage Collection)收集器是 JVM 的一个重要组件,它负责回收 Java 应用程序中的垃圾对象,从而维持应用程序的性能和可靠性。JvmGC 收集器是 JVM 中的三个主要 GC 收集器之一...

    mac mat jvm gc 内存分析

    JVM(Java Virtual Machine)的垃圾收集器(GC,Garbage Collector)扮演着核心角色,负责自动管理应用程序的内存,防止内存泄漏和性能问题。MAT(Memory Analyzer Tool)是由Eclipse基金会提供的一个强大的分析工具...

    jvm gc

    Java虚拟机(JVM)的垃圾收集(Garbage Collection, GC)是Java程序运行时管理内存的关键机制。它自动地识别并释放不再使用的对象,从而避免了程序员手动管理内存可能导致的内存泄漏问题。理解JVM的GC对于优化Java...

    用于测试jvm gc调优-share-jvm-gc.zip

    Java虚拟机(JVM)是Java程序运行的基础,它的垃圾收集器(GC)是自动管理内存的核心机制。在Java应用程序中,尤其是对于大型系统或高并发环境,进行JVM GC调优是提升性能、减少系统停顿时间的关键步骤。"用于测试...

    hpjmeter jvm gc监控工具

    【标题】"hpjmeter jvm gc监控工具"是一个专门用于监视Java虚拟机(JVM)内存管理和垃圾收集(GC)行为的实用程序。HPjmeter由惠普公司开发,它提供了一种可视化的方式来理解JVM性能,特别是与垃圾收集相关的活动。...

    IBM JVM GC 技术文档

    ### IBM JVM GC 技术文档知识点解析 #### 一、简介 IBM JVM(Java Virtual Machine)垃圾回收(Garbage Collection, GC)技术文档是针对IBM Developer Kit and Runtime Environment, Java 2 Technology Edition ...

    实战Hot Spot JVM GC

    HotSpot虚拟机中的垃圾回收机制(GC)是JVM内存管理的核心部分。它包括多种策略,其中最常见的是Young Generation Collection(YGC,又称Minor GC)和Full GC(FGC)。YGC负责回收新生代内存中的对象,而FGC则会回收...

    JVM GC原理, heapsize调优

    Java虚拟机(JVM)垃圾回收(GC)是Java语言内存管理的核心机制,负责回收Java堆内存中不再使用的对象所占的空间。在JVM GC原理和heapsize调优的学习和实践过程中,需要理解多个关键概念和操作步骤,下面详细展开: ...

    jvmgc日志分析工具

    "jvmgc日志分析工具"专为解析和可视化JVM生成的GC日志而设计,帮助开发者识别内存瓶颈,调整内存设置,以及诊断可能的性能问题。 GC日志是JVM在运行过程中记录的关于垃圾收集活动的详细信息,包括垃圾收集的起始...

    java jvm GC和GC Tuning 详解

    java jvm GC和GC Tuning详解

    java应用JVM的GC频率观察方法

    Java 应用程序的JVM(Java虚拟机)性能优化是一个关键领域,而垃圾收集(GC)作为内存管理的一部分,其频率对系统性能有直接影响。GC的频率反映了系统的内存使用情况和健康状况。通常,GC分为两种主要类型:Scavenge...

    Sun Hotspot V1.6.0 JVM GC PPT.pdf

    ### Sun Hotspot V1.6.0 JVM GC详解 #### 一、JVM结构与GC基础知识 ##### 1.1 JVM内存结构概述 Java虚拟机(JVM)内存主要分为以下几个部分: - **程序计数器(PC Register)**:记录当前线程所执行的字节码指令...

    一次完整的JVM GC的流程

    一次完整的JVM GC的流程分析,描述了Full GC的原因入口以及Minor GC

    jvm gc jvm调优 查看工具

    Java虚拟机(JVM)是Java程序运行的基础,它的核心功能之一是垃圾收集(Garbage Collection, GC),这是Java语言的一大优势,但也因为其复杂性成为性能优化的关键环节。JVM调优通常涉及到内存配置、GC策略选择以及...

    jvm gc分析工具gcviewer-1.36.jar

    对gc日志进行统计分析,使用命令:java -jar gcviewer-1.3x.jar gc.log summary.csv [chart.png] [-t PLAIN|CSV|CSV_TS|SIMPLE|SUMMARY]

Global site tag (gtag.js) - Google Analytics