首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏盛开在夏天的太阳

    JVM--GC2

    参开资料: 1. https://blog.csdn.net/liaynling/article/details/81251870 一. java jvm 参数 -Xms -Xmx -Xmn -Xss 3)设置过堆大小之后,可以根据程序创建对象的频率来调整新生代的内存大小,如果程序中创建新对象的频率比较搞可以适当大新生代,但不要盲目调整,因为新生代的大小对JVM 及系统性能影响较大,Java 官方推荐配置为整个堆大小的 -3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了 总结: JVM 1. -Xms和-Xmx设为相同值.为了优化GC,最好让-Xmn值约等于-Xmx的1/3[2]. 2.一个GUI程序最好是每10到20秒间运行一次GC,每次在半秒之内完成[2]. 此时会触发FullGC 二. jvm性能常用的命令 1. top命令. 

    51520编辑于 2022-05-06
  • 来自专栏Elixir

    GC 性能

    什么是? 根据需求进行JVM规划和预 优化运行JVM运行环境(慢,卡顿) 解决JVM运行过程中出现的各种问题(OOM) ,从规划开始 ,从业务场景开始,没有业务场景的都是耍流氓 无监控(压力测试 案例2:12306遭遇春节大规模抢票应该如何支撑? 扩容或,让它达到 用压测来确定 优化环境 有一个50万PV的资料类网站(从磁盘提取文档到内存)原服务器32位,1.5G 的堆,用户反馈网站比较缓慢,因此公司决定升级,新的服务器为64位,16G 的堆内存 PS -> PN + CMS 或者 G1 系统CPU经常100%,如何

    1.7K10编辑于 2022-11-05
  • 来自专栏盛开在夏天的太阳

    JVM--GC基础

    整体上来讲, 看了马士兵的预习视频以后, 感觉对GC又复习了一遍. 此次预习, 主要目的是7号晚上会有一个JVM的课程, 全称也有几点感悟 1. 理论偏多, 也就是更多的是概念性的问题. 2. 老年代:      1) 装的顽固分子     2) 垃圾回收叫FGC   e. GC tuning(Generation) GC, 什么呢?      所以我们也是针对这部分. 仔细看, 新生代和老年代中间有虚线, 虚线代表组合. a. Eplison   目前,我们主要的是哪一块呢? Serial和Serial Old, Parallel Scavenge和Parallel Old.    我们使用的时候很少去手动设置 6. jvm第一步, 了解生产环境下的垃圾回收组合   a. JVM命令行参数的参考   b.

    50930编辑于 2022-05-06
  • 来自专栏Java

    Java GC详解

    Java GC详解 在Java应用程序中,垃圾回收(Garbage Collection,GC)是管理和释放内存的重要机制。良好的GC可以提高应用程序的性能和稳定性。 本文将深入探讨Java GC的原理、常用技巧以及应用场景,并提供详细的案例和代码示例。 1. GC概述 GC是通过调整JVM的参数和应用程序的设计来优化内存管理和垃圾回收机制,以减少GC的频率和影响,提高应用程序的性能和吞吐量。 2. GC原理 GC的核心原理是尽可能减少垃圾对象的产生,以及尽量降低GC的停顿时间和频率。常用的手段包括调整堆内存大小、选择合适的GC算法、优化对象的创建和销毁等。 3. 常用的GC技巧 调整堆内存大小: 根据应用程序的内存需求和性能要求,适当调整堆内存大小,避免过小导致频繁GC,也避免过大导致长时间的Full GC

    83410编辑于 2025-01-21
  • 来自专栏数据人生

    Java GC参数

    对于正常环境的服务来说 -server -Xms24G -Xmx24G -XX:PermSize=512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70 对于备份服务器 -server -Xms4G -Xmx4G -XX:PermSize=512m -XX:+UseG1GC -XX:InitiatingHeapOccupancyPercent=70 对于单独部署的服务 -server -Xms32G -Xmx32G -XX:PermSize=512m -XX:+UseG1GC

    59610编辑于 2022-09-29
  • 来自专栏Spark学习技巧

    spark系列之内存和GC

    一,基本概述 内存的使用主要有三个方面的考虑:对象的内存占用量(你可能希望整个数据集都适合内存),访问这些数据的开销,垃圾回收的负载。 2,测量GC的影响 GC的第一步是收集关于垃圾收集发生频率和GC花费的时间的统计信息。 3,高级GC 为了进一步调整垃圾收集,我们首先需要了解一些关于JVM内存管理的基本信息<详细的请看:JVM的垃圾回收算法>: 1),java的堆内存分为两个区域新生代和老年代。 Spark应用程序GC的目标是,确保生命周期比较长的RDD保存在老年代,新生代有足够的空间保存生命周期比较短的对象。这有助于避免触发Full GC去收集task运行期间产生的临时变量。 经验表明,GC调整的效果取决于您的应用程序和可用的内存量。下面的链接里有更多的在线描述的的选项,但在高层次上,管理GC的全面发生频率有助于减少开销。

    5.8K100发布于 2018-01-30
  • 来自专栏大数据成神之路

    HBase|HBase + G1GC 性能

    先传送门一下,之前在HBaseConAsia2017分享过一个G1GC的PPT: http://openinx.github.io/2012/01/01/my-share/ 首先,对G1算法不熟悉的同学 =1 -XX:G1HeapRegionSize=32m -XX:G1MixedGCCountTarget=64 -XX:G1OldCSetRegionThresholdPercent=5 其中重点需要的参数主要有 G1NewSizePercent :G1的Young区大小是通过算法来自适应确定的, 也就是根据之前Young区GC的耗时来确定之后的Young大小,如果耗时过长,则小Young区,耗时过短,则大Young 这个参数表示Young的最小百分比. 2. 后面只需要通过工具自动分析gc日志即可.

    2.5K21发布于 2019-10-15
  • 来自专栏程序猿的大杂烩

    JVM层GC(下)

    GC日志格式 本文是 JVM层GC(上) 的后续,在上一篇文章中,我们介绍了JVM的内存结构、常见的垃圾回收算法以及垃圾收集器和不同收集器中的一些GC参数。 但是光知道一些参数是没用的,我们需要能够从GC的日志中去分析可以的地方,这样才能使用这些参数去进行相应的调整,所以本小节将介绍一下不同收集器的GC日志格式。 ---- Parallel GC GC无外乎以下三个步骤: 打印GC日志 根据日志得到关键性能指标 分析GC原因,调整JVM参数 Parallel GC的指导原则: 除非确定,否则不要设置最大堆内存 关于Parallel GC就先介绍到这,实际上调都是需要经验来积累的,不是一蹴而就的,所以这里也只是给出一些的步骤、方式而已。 ---- G1 在上一小节中,我们介绍了Parallel GC,而在本小节中,将介绍一下G1收集器的

    1.2K20发布于 2020-09-23
  • 来自专栏程序猿的大杂烩

    JVM层GC(上)

    JVM内存结构简介(jdk1.8) JVM层的GC是生产环境上必不可少的一个环节,因为我们需要确定这个进程可以占用多少内存,以及设定一些参数的阀值。 想要进行GC,我们首先需要简单了解下JVM的内存结构,Java虚拟机的规范文档如下: https://docs.oracle.com/javase/specs/jvms/se8/html/index.html 区,默认20%) -XX:AdaptiveSizeDecrementScaleFactor=< D >(减少,默认4%) ---- 了解了并行收集器后,我们来简单看看CMS收集器其他的一些特性以及相关参数 重新标记,STW 5.CMS concurrent sweep:并发清除 6.CMS concurrent-reset:并发重置 CMS的缺点: CPU敏感 会产生浮动垃圾 会产生空间碎片 CMS的相关参数 : 1.响应时间 2.吞吐量 下一篇: JVM层GC(下)

    74330发布于 2020-09-23
  • 来自专栏Clive的技术分享

    Golang垃圾回收gc

    go func() { fmt.Println(<-B) }() c := make([]int, 10, 20) c = append(c, 1, 2, run test.go 2> log.file 123 [0 0 0 0 0 0 0 0 0 0 1 2 3] 1 gc 1 @0.030s 0%: 0.036+0.47+0.11 ms clock, 0.14+0.16/0.33/0.91+0.44 ms cpu, 4->4->0 MB, 5 MB goal, 4 P gc 2 @0.052s 0%: 0.005+0.43+0.077 ms clock 2 @0.012s 11%: 0.006+3.5+0.034 ms clock, 0.026+0.10/3.3/0.94+0.13 ms cpu, 8->9->8 MB, 9 MB goal, 4 P , 4 P golang gc 优化思路以及实例分析

    1.5K10发布于 2018-11-21
  • 来自专栏devops

    【架构实战】JVMGC日志分析与参数

    一、为什么需要JVMJava应用运行在JVM上,垃圾回收(GC)是影响性能的关键因素:GC带来的问题:STW(StopTheWorld)导致应用停顿频繁GC浪费CPU资源内存分配不合理导致频繁GCOOM (内存溢出)导致应用崩溃的目标:降低GC停顿时间(<200ms)提高吞吐量(>99%)避免OOM二、垃圾回收器详解1.垃圾回收器对比回收器线程数适用场景停顿时间Serial单线程简单高效小内存(<100MB MaxMetaspaceSizeUnabletocreatenewnativethread线程太多减少线程数DirectbuffermemoryNIO内存不足增大-XX:MaxDirectMemorySize六、性能实战 global:scrape_interval:15sscrape_configs:-job_name:'jvm'static_configs:-targets:['localhost:7071']八、总结JVM是 Java性能优化的核心:选择回收器:G1适合大多数场景合理配置内存:避免频繁GC分析GC日志:定位问题根源监控持续:及时发现异常最佳实践:先使用默认配置,观察GC行为根据GC日志调整参数避免过度做好监控和告警个人观点

    6710编辑于 2026-04-12
  • 来自专栏大数据技术架构

    Hive | HiveServer2 性能优化与GC优化

    这种情况是由于hiveserver2自身的复杂压力大,内存损耗严重,严重GC进而导致hiveserver2故障。 这种故障对应于上面介绍的“故障现象1”,通过jdbc无法正常连接到hiveserver2。为了解决该故障,可以通过优化内存GC可以缓解hiveserver2GC卡死问题。 以下是hiveserver2发生卡死,jdbc无法连接到hiveserver2的时候,统计GC的结果: 可以看到,当hiveserver2发生严重卡死时,也就是hiveserver2 进程发生严重GC 因此,可以通过优化hiveserver2的内存GC来优化hiveserver2,使之支持更高的并发、能够执行更复杂的sql任务。 因此,将hiveserver2迁移到资源非常空闲的另外一台服务器。 4.2 采用优化GC机制和参数 之前hiveserver2进程的启动参数没有添加GC参数,也就是说采用系统默认的GC机制。

    2.3K20发布于 2021-12-02
  • 来自专栏程序那些事

    GC到底是什么

    简介 我们经常会听到甚至需要自己动手去做GC。那么GC的目的到底是什么呢?让程序跑得更快?让GC消耗更少的资源?还是让程序更加稳定? 我们看一下G1的参数。 G1是基于分代技术的,其实JVM还在开发一些不再基于分代技术的GC算法,比如ZGC,我们可以根据需要来选择适合我们的GC算法。 02 GC的最大线程个数 GC是由专门的GC线程来执行的,并不是说GC线程越多越好,这个默认线程的最大值是由heap size和可用的CPU资源动态决定的。 如果启用了分层编译,那么可能需要关注JIT中的C1和C2编译器带来的影响。 我们到底要什么 鱼,我所欲也,熊掌亦我所欲也;二者不可得兼,舍鱼而取熊掌者也。 更多精彩内容 1 JVM系列之:再谈java中的safepoint 2 troubleshoot之:使用JFR解决内存泄露 3 JVM系列之:从汇编角度分析NullCheck

    85131发布于 2020-08-20
  • 来自专栏Ceph对象存储方案

    RGW 的GC深入解析与

    客户端执行删除Object操作,对应的Object所占用的磁盘空间会交由后台GC处理。 2. 客户端执行Object覆盖写入操作,旧Object相关的空间需要释放。 3. "1_" }; GC 流程概览图 最后一张图来总结整个GC的过程,其中涉及到几个和GC效率有直接关系的几个参数,大家可以根据各自线上情况去。 参数的几点心得 GC worker的数量由rgw_gc_max_objs来控制,设置这个参数的时候要考虑到你线上业务是否会有大量的GC操作,不要盲目调高。 ,可能就要大这个时长了。 rgw_gc_obj_min_wait 这个控制删除数据以后多久以后开始真正的底层数据回收,默认是2小时,如果线上对空间资源利用率比较敏感,可以适当缩短。

    4.8K80发布于 2018-01-31
  • 来自专栏cwl_Java

    JVM性能-GC垃圾回收讲解

    简介:GC垃圾回收讲解 战略意义 能做出⼀个需求的同时也要懂得其对应的战略意义 为什么要垃圾回收? Java语⾔中⼀个显著的特点就是引⼊了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃⽽解。

    46430发布于 2019-12-20
  • 来自专栏小冷coding

    如何对GC算法进行呢?

    GC(Garbage Collection,垃圾收集)算法进行是一个涉及多个方面的复杂任务。 以下一些的方案: 分析GC日志: 开启GC日志记录功能,收集GC事件、堆内存使用、GC耗时等数据。 监控与: 在生产环境中持续监控GC性能和应用程序性能,关注GC频率、停顿时间、内存使用率等指标。 根据监控数据,定期评估GC效果,并根据需要进行调整。 此外,随着JVM版本的不断升级和GC算法的持续发展,我们还需要时刻关注最新的技术动态,及时将新的技术和方法应用到GC中,以提高系统的整体性能。 总之,GC是一个不断学习和实践的过程,只有不断积累经验,才能更好地应对各种复杂的GC问题,提升系统的稳定性和性能。

    71010编辑于 2024-04-26
  • 来自专栏Java后端技术栈cwnait

    Java 9 中的 GC 基础

    本文将主要讲解GC需要知道的一些基础知识,会涉及到一些GC的实现细节,但不会对实现细节做很全面的阐述,如果你看完本文之后,能对GC有一个大致的认识,那本文的写作目的也就达到了。 本文将包含以下内容: GC的作用范围 GC负责的事情 JVM中的4种GC G1的一些细节 使用Java 9正式版对G1进行测试 一些简单的GC方法 一、GC的作用范围 要谈GC的作用范围,首先要谈JVM 2. 如果Eden的对象分配失败,出发Minor GC。 如果Minor GC完成后还不够,则直接分配到老年代。 一些简单的GC方法 1. 在Parallel里,可以通过参数调节最大停止时间(-XX:MaxGCPauseMillis,默认无设置)和吞吐量(-XX:GCTimeRatio,默认值是99,即最大使用1%的时间来做垃圾回收)来

    79840发布于 2019-08-02
  • 来自专栏java一日一条

    Java 9 中的 GC 基础

    本文将主要讲解GC需要知道的一些基础知识,会涉及到一些GC的实现细节,但不会对实现细节做很全面的阐述,如果你看完本文之后,能对GC有一个大致的认识,那本文的写作目的也就达到了。 本文将包含以下内容: GC的作用范围 GC负责的事情 JVM中的4种GC G1的一些细节 使用Java 9正式版对G1进行测试 一些简单的GC方法 一、GC的作用范围 要谈GC的作用范围,首先要谈JVM 2. 如果Eden的对象分配失败,出发Minor GC。 如果Minor GC完成后还不够,则直接分配到老年代。 一些简单的GC方法 1. 在Parallel里,可以通过参数调节最大停止时间(-XX:MaxGCPauseMillis,默认无设置)和吞吐量(-XX:GCTimeRatio,默认值是99,即最大使用1%的时间来做垃圾回收)来

    71820发布于 2018-09-14
  • Java 性能:优化 GC 线程设置

    1 咋查找应用程序的 GC 线程数量进行线程转储分析来确定应用程序的 GC 线程数量:从生产服务器捕获thread dump使用thread dump分析工具进行分析立即显示 GC 线程数量,如图还可通过 2 咋设置 GC 线程数量? -XX:ConcGCThreads 默认值:公式:max((ParallelGCThreads+2)/4, 1)因此,如果 JVM 运行在 32 个处理器的服务器上:ParallelGCThread 的值将是 GC 暂停时间增加,吞吐量下降过多的 GC 线程会使垃圾回收过程低效,导致更长的 GC 暂停时间,应用程序会被暂时中断,延长的暂停时间可能会造成明显的延迟或卡顿。 =n在生产环境中应用这些更改前,先研究应用程序的 GC 行为,收集并分析 GC 日志。

    63010编辑于 2024-09-17
  • 来自专栏架构师之旅

    Java9中的GC基础

    本文将主要讲解GC需要知道的一些基础知识,会涉及到一些GC的实现细节,但不会对实现细节做很全面的阐述,如果你看完本文之后,能对GC有一个大致的认识,那本文的写作目的也就达到了。 本文将包含以下内容: GC的作用范围 GC负责的事情 JVM中的4种GC G1的一些细节 使用Java 9正式版对G1进行测试 一些简单的GC方法 一、GC的作用范围 要谈GC的作用范围,首先要谈JVM 2. 如果Eden的对象分配失败,出发Minor GC。 如果Minor GC完成后还不够,则直接分配到老年代。 一些简单的GC方法 1. 在Parallel里,可以通过参数调节最大停止时间(-XX:MaxGCPauseMillis,默认无设置)和吞吐量(-XX:GCTimeRatio,默认值是99,即最大使用1%的时间来做垃圾回收)来

    86670发布于 2018-01-30
领券