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

为什么CMS结束语中的ParNew,sys时间这么长?

CMS(Concurrent Mark Sweep)是一种用于垃圾回收的Java虚拟机的收集器。在CMS结束语中,ParNew和sys时间长的原因可能有以下几点:

  1. ParNew是CMS收集器的新生代收集器,负责回收年轻代的垃圾对象。由于年轻代通常包含大量的短命对象,因此ParNew的回收频率较高,可能导致sys时间较长。
  2. sys时间指的是操作系统级别的时间,包括系统调用、内核操作等。在CMS结束语中,sys时间长可能是由于操作系统负载较高、资源竞争等原因导致的。
  3. CMS收集器是一种并发收集器,它在垃圾回收过程中与应用程序并发执行。这意味着CMS需要与应用程序竞争系统资源,可能导致sys时间较长。
  4. CMS收集器的特点是以获取最短回收停顿时间为目标,因此在回收过程中会尽量减少应用程序的停顿时间。为了达到这个目标,CMS采用了一些优化策略,如并发标记、并发清除等。这些策略可能会增加sys时间。

针对CMS结束语中ParNew和sys时间长的情况,可以考虑以下优化措施:

  1. 调整垃圾回收参数:可以根据具体情况调整CMS收集器的参数,如调整新生代大小、调整并发线程数等,以优化回收性能。
  2. 优化应用程序:可以对应用程序进行性能优化,减少垃圾对象的产生,降低垃圾回收的压力。
  3. 资源调整:如果sys时间长是由于系统资源竞争导致的,可以考虑增加系统资源,如CPU、内存等,以提高系统的处理能力。

腾讯云提供了一系列与云计算相关的产品,如云服务器、云数据库、云存储等。具体针对CMS结束语中的问题,腾讯云并没有直接相关的产品或文档可以推荐。但腾讯云的云服务器和云数据库等产品可以提供稳定的计算和存储资源,以支持应用程序的运行和数据存储。您可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于腾讯云产品的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Flink】第二十篇:HBase GC 调优实战

其中主要的四个阶段如下, 1. 初始标记 这是CMS中两次stop-the-world事件中的一次。...重新标记 重新标记阶段 则是为了修正并发标记期间因用户程序继续运作而导致标记产生变动的那一部分对象的标记记录,这个阶段的停顿时间一般会比初始阶段稍长一些,但远比并发标记的时间短,会导致swt。...CMS并发清除花费的时间基本都很久,这个时间也和GC报警时间03:00吻合。...这个参数后,即使在测试集群超高负荷的情况下,GC日志中的CMS几乎很少触发了!...大部分都是minor gc,而由于我设置了较高的gc 并行度,minor gc的Parnew就像flink一样,执行效率提升效果很明显,基本在10-150ms左右! 那么,这是为什么呢?

62030

记一次接口慢查排查

理论上只要查出哪里出现了长耗时操作,以及为什么发生,问题就解决了。于是先不管三七二十一,直接分析 MyBatis 的源码吧。...目前不知道 CPU 为什么会突然上升这么多,这个信息暂时无法提供有效的帮助,先放着。最后再看一下网络 I/O 监控。 ?...,那为什么会耗时这么多呢?...A:目前的猜测是模型类的转换以及序列化本身需要一定的时间,其次这期间应该有多个序列化过程同时在就行,不过这也解释不了时间为什么这么长。不过如果我们把 GC 考虑进来,就会得到相对合理的解释。...----------------------------✂------------------------------------------------- Q:第一个 set 和第二个 set 间隔为什么也会这么长

1.7K10
  • Java 虚拟机之 CMS GC 调优解析

    在 Java 8 中,CMS 是默认的垃圾收集器,其核心目标为倾向于以最少的垃圾收集暂停时间提供最佳的性能特性。...GC 进程(ParNew)变满时会自动运行,该进程将删除未使用的对象并将所有生存时间足够长的对象移至 Tenured 代,从而释放 Young 代中用于更多新对象的空间。...实际的场景中,通过设置以下 JVM 选项来指定此收集器,具体如下所示: -XX:+UseConcMarkSweepGC        ParNew 部分        ParNew 部分的 GC 日志输出示例..., real=0.09 secs]       该日志文件中的每一行代表一个 GC,并显示有关 ParNew 的以下类型的信息:      1、时间戳信息-如果未设置 PrintGCTimeStamps...CMS 部分      日志文件的 CMS 部分与 ParNew 部分不同,因为它显示了同一 GC 的多行。

    79060

    Java虚拟机 CMS GC 调优解析

    在 Java 8中,CMS 是默认的垃圾收集器,其核心目标为倾向于以最少的垃圾收集暂停时间提供最佳的性能特性。...GC 进程(ParNew)变满时会自动运行,该进程将删除未使用的对象并将所有生存时间足够长的对象移至 Tenured 代,从而释放 Young 代中用于更多新对象的空间。...实际的场景中,通过设置以下 JVM 选项来指定此收集器,具体如下所示: -XX:+UseConcMarkSweepGC ParNew 部分 ParNew 部分的 GC 日志输出示例..., real=0.09 secs] 该日志文件中的每一行代表一个 GC,并显示有关 ParNew 的以下类型的信息: 1、时间戳信息-如果未设置 PrintGCTimeStamps...CMS 部分 日志文件的 CMS 部分与 ParNew 部分不同,因为它显示了同一 GC 的多行。

    68930

    《Java Performance The Definitive Guide》GC部分读书笔记

    整个gc程序消耗的cpu时间比realtime(实际时间)要长,主要是因为ygc是由多个线程(本次配置为4个线程)共同完成的。...gc Log中的时间可以用来衡量gc对于应用的影响 Understanding the CMS Collector 由于目前线上的机器大部分使用的是cms gc策略,所以重点关注了这部分 cms有三种基本的操作...,但是old区中没有足够的空间容纳需要晋升的对象时,cms会触发一次full gc。...所以,在minor gc的过程中,cms尝试去清理和压缩整理old区。好消息是heap最终会被重新压缩整理,碎片化问题得以解决。但是会带来一个28秒的停顿时间。...这个时间比发生‘concurrent mode failure’时消耗的时间要长,因为此时整个heap进行了压缩整理,而concurrent mode failure只free掉old区的内存。

    51830

    GC算法、垃圾收集器

    ,这个阶段的停顿时间一般会比初始标记阶段稍长一些,但远比并发标记的时间短。...CMS,全称Concurrent Low Pause Collector,是jdk1.4后期版本开始引入的新gc算法,在jdk5和jdk6中得到了进一步改进,它的主要适合场景是对响应时间的重要性需求大于对吞吐量的要求...在我们的应用中,因为有缓存的存在,并且对于响应时间也有比较高的要求,因此希望能尝试使用CMS来替代默认的server型JVM使用的并行收集器,以便获得更短的垃圾回收的暂停时间,提高程序的响应性。...CMS收集周期 CMS并非没有暂停,而是用两次短暂停来替代串行标记整理算法的长暂停,它的收集周期是这样: 初始标记(CMS-initial-mark) -> 并发标记(CMS-concurrent-mark...logs/gc.log 在运行相当长一段时间内查看CMS的表现情况,CMS的日志输出类似这样: 4391.322: [GC [1 CMS-initial-mark:655374K(1310720K)]

    31330

    JVM 之 ParNew 和 CMS 日志分析

    作者:王蒙 原文:http://matt33.com/2018/07/28/jvm-cms/ 在两年前的文章 JVM 学习——垃圾收集器与内存分配策略中,已经对 GC 算法的原理以及常用的垃圾收集器做了相应的总结...今天这篇文章主要是对生产环境中(Java7)常用的两种垃圾收集器(ParNew:年轻代,CMS:老年代)从日志信息上进行分析,做一下总结,这样当我们在排查相应的问题时,看到 GC 的日志信息,不会再那么陌生...,相对 JVM 启动的相对时间,单位时秒,这里是4h+; ParNew:收集器名称,这里是 ParNew 收集器,它使用的是并行的 mark-copy 算法,GC 过程也会 Stop the World...secs:这个阶段的持续时间与时钟时间; [Times: user=0.20 sys=0.12, real=0.06 secs]:同并发标记阶段中的含义。...sys=0.10, real=0.04 secs] 日志详情分别如下: CMS-concurrent-reset:这个阶段的开始,目的如前面所述; 0.044/0.044 secs:这个阶段的持续时间与时钟时间

    1.2K40

    教你如何通过分析GC日志来进行JVM调优

    ,这是因为总空间下面还包括了老年代发生回收后释放的空间大小,可能有人会觉得奇怪,这里明明只有新生代发生了GC,为什么老年代会有空间释放?...8、[Times: user=0.02 sys=0.00, real=0.11 secs] 这一部分并不是所有的垃圾收集器都会打印,user=0.02表示用户态消耗的CPU时间,sys=0.00表示内核态消耗的.../zwx900102/article/details/108180739 1、CMS Initial Mark对应的是CMS工作机制的第一步初始标记,主要是寻找GCRoot对象 2、中括号内10443K...CMS工作机制中的第二步并发标记。...这个阶段主要是根据GCRoot对象遍历整个引用链 5、再往后面一行CMS-concurrent-mark: 0.052/0.052 secs,这里的两个时间,第一个表示该阶段持续的cpu时间和墙钟时间

    3.1K31

    海量网络连接服务端JVM参数调优实战过程

    应用:shark-美团点评移动端长连代理,每日接受移动端请求约150亿 应用特点: qps比较高,新生代增长飞快 用户的连接需要维持一段时间 单机需要维持海量连接,几十万的级别 以上三个特点导致有大量小对象聚集在...第三次调优 仔细研究了一下第二种调优方式的组合,yong区域使用parNew 的方式,old区域使用serial old 的方式,如果在其他条件都相同的条件下使用parNew+cms的方式,old gc...重新标记的时候,old区域的大小是固定的(这里设置成old区域的70%),按理说每次remark的时间应该都差不多才对,但是查了很多cms old gc日志,发现高峰期和低峰期remark的时间相差太大...google了一把,发现cms有这么个参数-XX:+CMSScavengeBeforeRemark,这玩意的意思是在remark之前,来一次yong gc,满足我们的要求,加了这个参数之后 对应的jvm...发现old gc的时间缩小到原来cms的1/100,窃喜。

    89730

    一次频繁cms gc问题的排查

    =5000 AbortablePreclean是cms过程中的一个阶段,用于平衡ygc 和remark阶段(避免连续两次stw),设定该阶段最长时间为5s -XX:CMSInitiatingOccupancyFraction...final remark的记录是之后的,我一般是这么理解的 大大2: 整个cms gc是从initial mark开始到remark结束,initial mark告诉你触发cms的old区大小,remark...但是old区中没有足够的空间容纳需要晋升的对象时,cms会触发一次full gc。...所以,在minor gc的过程中,cms尝试去清理和压缩整理old区。好消息是heap最终会被重新压缩整理,碎片化问题得以解决。但是会带来一个28秒的停顿时间。...这个时间比发生‘concurrent mode failure’时消耗的时间要长,因为此时整个heap进行了压缩整理,而concurrent mode failure只free掉old区的内存。

    1.6K30

    java中的垃圾回收机制简介

    根据对象的存活周期将内存划分成几块,对不同的存活时间使用不同的垃圾回收算法 分代GC带来的好处 大多数情况下,数据都会满足这么一个假设:大部分对象的存活时间很短,而其它的对象则有可能存活时间很长。...GC为什么要分代 什么时候可以回收 要做回收,首先得知道哪些对象是可达的(存活的),而要知道可达性,对于对象引用追踪这种思想,就得要去遍历整个GC根集合。...几乎所有的阶段都是并发执行 ZGC仍然会压缩堆,压缩堆这件事,通常意味着 将或者的对象移到堆的一端 执行移动过程中需要暂停应用线程 压缩主要会遇到这么些问题 在搬运对象到另一个内存地址的时候...>1163K(253440K), [CMS Perm : 3060K->3059K(21248K)], 0.0349020 secs] [Times: user=0.03 sys=0.02, real=..."GC前java堆已使用的容量->GC后Java堆使用的容量(Java堆总容量)" [Times: user=0.03 sys=0.02, real=0.03 secs] 分别表示用户态消耗的CPU时间

    94520

    服务刚启动就 Old GC,要闹哪样?

    但是你会发现一个奇怪的现象,咦,"CMS-initial-mark: 0K(3222528K)" 怎么 Old Gen 对象使用空间大小为 0,细想服务刚启动,Old Gen 为 0 也算正常,但是为什么会触发...根据增量 GC 是否可能会失败(悲观策略) 这种情况主要说的是在两代的 GC 体系中,如果 Young GC 已经失败或者可能会失败,JVM 就认为需要进行一次 CMS GC。...,只是不容易发现,以下是夹在 CMS GC 过程中的两段 Young GC 日志,可以看到日志中,metaspace 的 capacity 从 32762K 到 60333K,这也说明了,metaspace...喜欢本文的朋友们,欢迎长按下图关注订阅号涤生的博客,收看更多精彩内容 更多精彩内容: 简单的 HTTP 调用,为什么时延这么大?...() 导致的频繁 Full GC 服务框架的技术栈 PhantomReference导致CMS GC耗时严重 长连接和心跳那些事儿 System.gc() 源码解读 Long Polling长轮询详解

    1.4K60

    JAVA 性能调优 -- 带你解读 CMS GC 日志

    引言 连续两篇文章,我们介绍了 java 最为常用的两大垃圾收集器 -- CMS 与 G1: CMS 执行的七个阶段 驾驭一切的垃圾收集器 -- G1 在 G1 收集器的介绍中,我们提到,CMS 有着非常多的参数来控制整个流程...# 在 gc log 中记录 gc 启动时的系统时间 -XX:+PrintGCTimeStamps # 在 gc log 中记录 gc 启动时相对于 jvm 启动的相对时间 2.3 堆 dump 相关参数...0.0013161 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] 这行日志中,有以下关键信息: Allocation Failure -- 表示本次...GC 是由于分配空间失败引起的 ParNew -- 表示使用的垃圾收集器为 ParNew 15287K->17K(18432K) -- 表示年轻代垃圾回收前占用从 15287KB 到回收后占用 17KB...如上图所示,在菜单中勾选想要查看的信息,就可以在图中查看了,而在右侧可以看到详情信息。

    2.3K30

    记一次FullGC的排查经历--从日志到业务代码

    -07-25T14:55:11.932+0800: 155290.482: [CMS-concurrent-mark: 4.268/4.275 secs] [Times: user=40.27 sys=...问题自然要一跟到底,接下开始进行排查 为什么会FullGC?...(),我们的服务在启动参数中开启了这个参数-XX:ExplicitGCInvokesConcurrent,这个参数的含义是将显示调用的System.gc()转为CMS的并发GC,所以并不会因此而触发FullGC...不过光这样还不能给它定罪,因为从经验来看,这么长的请求参数其实并不罕见,可以回到第一张的结构图上看,我们的服务同时接收来自web和api两端的请求,如果是web上用户是没有这样的入口去操作1000个的,...导致大量对象 长时间滞留在堆内存中挺过了一波波的minorGC和CMS GC干满老年代,最终触发了这个问题。

    49631

    记一次生产频繁出现 Full GC 的 GC日志图文详解

    2.3 生产基础环境说明如下: JDK版本:jdk_1.6 Web容器:Weblogic [题外话:估计市面上都是玩微服务了吧,jdk 版本至少也得 1.8 以上,jdk 1.6 不支持 G1 这么好用的垃圾收集器...->15199K(153344K), 0.0485240 secs] 2568043K->2439507K(4177280K), 0.0497750 secs] [Times: user=0.20 sys...[题外话:为什么这么频繁,系统都线上运行3年了,当初系统上线JVM启动参数应该是随便设置的,呵呵?...2.8 ParNew + CMS 组合 ParNew(年轻代垃圾回收器) + CMS(老年代垃圾回收器) 回收器组合是在 JDK 1.8 之前大多数 JAVA 企业级服务应用的最佳选择,从以下生产 GC...concurrent mode failure 该现象是在执行 CMS 回收器回收垃圾的过程中同时有存活的对象放入老年代,而此时老年代空间不足,或者在做 ParNew GC 的时候,年轻代 Survivor

    8.9K40

    Minor GC、Major GC 和 Full GC 之间的区别

    在整个过程中,经常对 Minor、Major、和 Full GC 事件的使用感到困惑。这也是我写这篇博客的原因,我希望能清楚地解释这其中的一些疑惑。 文章要求读者熟悉 JVM 内置的通用垃圾回收原则。...其中的真相就 是,大部分 Eden 区中的对象都能被认为是垃圾,永远也不会被复制到 Survivor 区或者老年代空间。...如果正好相反,Eden 区大部分新生对象不符合 GC 条件,Minor GC 执行时暂停的时间将会长很多。 所以 Minor GC 的情况就相当清楚了——每次 Minor GC 会清理年轻代的内存。...基于该信息,我们可以得出这样的结果,运行了12次 Minor GC、2次 Full GC,时间总跨度为50毫秒。...] [Times: user=0.24 sys=0.04, real=0.11 secs] 13.098: [GC (CMS Initial Mark) [1 CMS-initial-mark: 897364K

    58310
    领券