首页
学习
活动
专区
工具
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 gcParnew就像flink一样,执行效率提升效果很明显,基本在10-150ms左右! 那么,这是为什么呢?

56930

记一次接口慢查排查

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

1.5K10

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 多行。

74060

Java虚拟机 CMS GC 调优解析

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

60130

《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区内存。

49230

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)]

29730

JVM 之 ParNewCMS 日志分析

作者:王蒙 原文: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.1K40

教你如何通过分析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时间和墙钟时间

2.6K31

海量网络连接服务端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时间缩小到原来cms1/100,窃喜。

87130

一次频繁cms gc问题排查

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

1.5K30

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.1K30

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时间

92320

服务刚启动就 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

记一次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干满老年代,最终触发了这个问题。

48231

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

56010

记一次生产频繁出现 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

7.7K40
领券