展开

关键词

19c BUG 导致大量gc quiesce待事件

墨墨导读:某省运营商客户今年进行3套核心数据库迁移19c项目,项目进行过程中遇到不少Oracle BUG。本文介绍在业务测试过程中,由于BUG导致数据库产生大量gc quiesce待。 取awr分析,绝大部分的BD time消耗在gc quiesce待上,平均待时间1ms。 ? 且待全部消耗在truncate语句上。 ? gc quiesce不是一个常见的待事件,通过搜索相关资料,信息比较有限。 下面的说明显示:该待本身不是问题,只是其他一些问题(如:ORA-600)的副作用。 具体问题是buffer上的锁在关闭时存在不必要的处理,可能造成导致1秒以内的"gc quiesce"待事件。 问题解决 通过打上29908777补丁,经观察gc quiesce待基本消失。 平均待时间由原来的1s降为0.08ms,问题解决。 ?

34220

保2.0实施,企业应该如何应对

伴随网络安全的比重越来越大,网络安全保护已经从开始的1.0版本升到了全新的二代版本。俗称保2.0。 保配图2.jpg 相比1.0版本,保2.0有哪些重要变化 首先,法律效力不同。 保2.0的要求从简单的条例要求,上升到了法律层面,《中华人民共和国网络安全法》中明确提出了要实行网络安全保护制度,网络运营者如果不履行保护义务将受到处罚。 其次,保护对象更科学更全面。 保2.0把云计算平台、大数据平台、移动互联网、物联网和工业控制系统都纳入了保护对象范围,并针对这些新技术、新应用提出了特殊的安全扩展要求。 再次,构建主动防御体系。 保2.0要求对三以上系统每年开展测评,四系统每年至少保证一次测评,降低了网络运营者的管理压力。此外,保1.0要求60分基本符合,而在保2.0里,测评达到75分以上才算基本符合。 企业如何通过保 可以这么说,保2.0的范围更大,相对而言保测评的要求也更为严格。那么针对保2.0企业应该如何应对呢? 如果企业想通过保测评,比较便捷高效的方式就是寻找一位可靠的云服务厂商。

18100
  • 广告
    关闭

    腾讯云+社区系列公开课上线啦!

    Vite学习指南,基于腾讯云Webify部署项目。

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

    Minor GC、Major GC、Full GC的区别

    今天主要谈谈JVM GC的类型和策略,特别是大家经常混淆的Minor GC、Major GC、Full GC,年轻代GC、老年代GC,之间有什么区别和联系。 Major GC 老年代的垃圾收集叫做Major GC,Major GC通常是跟full GC价的,收集整个GC堆。 Minor GC和Major GC其实就是年轻代GC和年老年GC的俗称。 而在Hotspot VM具体实现的收集器:Serial GC, Parallel GC, CMS, G1 GC中,大致可以对应到某个Young GC和Old GC算法组合。 分代GC并不收集整个GC堆的模式,而是只专注分代收集 Young GC:只收集年轻代的GC Old GC:只收集年老代的GC(只有CMS的concurrent collection是这个模式) Mixed 以上就是Minor GC、Major GC、Full GC的一个介绍,后续我们再重点介绍JVM GC相关的垃圾回收算法以及底层的实现。

    1.1K51

    OpenJDK 11 JVM日志相关参数解析与使用

    例如:Pause Young (Normal) (G1 Evacuation Pause) 3480M->1565M(5120M) 15.968ms 包含了GC类型,GC原因,收集内存大小,持续时间信息 gc,heap,gc,heap,region gc,heap的debug别会显示gc的时候堆的概况,对于G1 GCgc,heap,region的trace别,会打印每一个region的详细情况,这个一般供 ,gc+age=debug是价的 对于这种可以合并的标签,可以参考后面的动态修改JVM日志别章节来通过修改日志参数看JVM是如何合并的。 将老版本的日志配置转换为新版本的日志配置 GC相关: 原始参数 价新参数以及说明 G1PrintHeapRegions -Xlog:gc+region=trace GCLogFileSize 和 NumberOfGCLogFiles 的ID还有GC原因默认就会打出来,不用配置这个了 其他参数: 原始参数 价新参数以及说明 TraceExceptions -Xlog:exceptions=info 打印jvm遇到的任何错误异常日志

    81530

    Java Web技术经验总结(二)

    Maven的使用经验 依赖的scope有test、provided、compile。 Mockito + Spring + AssertJ是Spring项目中写单元测试的最佳组合,优点有:轻量、简洁、可以测试web层(拦截器、过滤器)、可以测试异常分支。 log4j中的日志别有:DEBUG、INFO、WARN、ERROR(别依次变高),在生产环境中一般采用ERROR别、在开发环境中使用DEBUG别。 如果日志别为DEBUG别 ,则代码中的logger.debug()、logger.info()、logger.warn()和logger.error()日志都会打印;如果日志别为WARN,则只会打印 服务的稳定性,需要良好的监控保障,主要包括几个方面:系统监控、应用监控(JVM)、业务监控(PV/UV/RT)和调用链路监控

    39830

    Tencent Kona JDK11无暂停内存管理ZGC生产实践

    ,即堆大小指数增长时,停顿时间也会指数增长。 特别是当触发 Full GC 时,停顿可达分钟别。 当业务应用需要提供高服务别协议(Service Level Agreement,SLA),例如 99.99% 的响应时间不能超过 100ms,此时 CMS、G1 就无法满足业务的需求。 找出所有的 GC Roots 集合:这是 Tracing GC 算法的起点,GC Roots 主要为运行时的关键数据结构中存放的指向堆对象的指针,如线程栈上的堆对象指针。 为满足业务需求,一般会采用 C++ Native 语言重写一些重要模块,如腾讯的广告系统采用 C++ 实现,或者购置 Zing 实现低延迟 GC 的 VM,抑或在 CMS 和 G1 上八仙过海、各显神通

    26450

    Java常见的垃圾收集器有哪些?

    Web反应时间敏感的应用非常重要,一直到今天,仍然有很多系统使用CMS GC。 但是, CMS采用的标记-清除算法,存在着内存碎片化问题,所以难以避免在长时间运行情况下发生full GC,导致恶劣的停顿。 Parrallel GC, 在早期JDK 8版本中,它是server模式JVM的默认GC选择,也被称作是吞吐量优先的GC。 开启选项是:-XX:+UseParallelGC 另外, Parallel GC引入了开发者友好的配置项,我们可以直接设置暂停时间或吞吐量目标, JVM会自动进行适应性调整,例如下面参数: -XX:MaxGCPauseMillis ZGC 这是 Oracle 开源出来的一个超 GC 实现,具备令人惊讶的扩展能力,比如支持 T bytes 别的堆大小,并且保证绝大部分情况下,延迟都不会超过 10 ms。

    65800

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

    如果正好相反,Eden 区大部分新生对象不符合 GC 条件,Minor GC 执行时暂停的时间将会长很多。 所以 Minor GC 的情况就相当清楚了——每次 Minor GC 会清理年轻代的内存。 首先,许多 Major GC 是由 Minor GC 触发的,所以很多情况下将这两种 GC 分离是不太可能的。 这使得我们不用去关心到底是叫 Major GC 还是 Full GC,大家应该关注当前的 GC 是否停止了所有应用程序的线程,还是能够并发的处理而不用停掉应用程序的线程。 基于该信息,我们可以得出这样的结果,运行了12次 Minor GC、2次 Full GC,时间总跨度为50毫秒。

    52430

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

    Minor GC 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC。这一定义既清晰又易于理解。 如果正好相反,Eden 区大部分新生对象不符合 GC 条件,Minor GC 执行时暂停的时间将会长很多。 所以 Minor GC 的情况就相当清楚了——每次 Minor GC 会清理年轻代的内存。 首先,许多 Major GC 是由 Minor GC 触发的,所以很多情况下将这两种 GC 分离是不太可能的。 这使得我们不用去关心到底是叫 Major GC 还是 Full GC,大家应该关注当前的 GC 是否停止了所有应用程序的线程,还是能够并发的处理而不用停掉应用程序的线程。 基于该信息,我们可以得出这样的结果,运行了12次 Minor GC、2次 Full GC,时间总跨度为50毫秒。

    1.4K30

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

    Minor GC 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC。这一定义既清晰又易于理解。 如果正好相反,Eden 区大部分新生对象不符合 GC 条件,Minor GC 执行时暂停的时间将会长很多。 所以 Minor GC 的情况就相当清楚了——每次 Minor GC 会清理年轻代的内存。 首先,许多 Major GC 是由 Minor GC 触发的,所以很多情况下将这两种 GC 分离是不太可能的。 这使得我们不用去关心到底是叫 Major GC 还是 Full GC,大家应该关注当前的 GC 是否停止了所有应用程序的线程,还是能够并发的处理而不用停掉应用程序的线程。 基于该信息,我们可以得出这样的结果,运行了12次 Minor GC、2次 Full GC,时间总跨度为50毫秒。

    23810

    GC

    新生代垃圾收集器 其他线程gc线程 ? 安全点 什么是安全点? JVM的快照下分析,其他线程停止gc线程。 安全点太多,GC 过于频繁,增大运行时负荷;安全点太少,GC 待时间太长。 ? Serial收集器 减少gc线程待时间(系统停顿时间)适合交互 在程序启动时可以设置 指定 收集器 Java最基本历史最悠久的收集器 jdk1.3.1以前是Java虚拟机年轻代的唯一选择 (由于优先比较低,不承诺待其运行结束,方法执行了随时可能被终止)给对象创造了最后一次重生的机会 不建议使用:由于运行的不确定性较大,无法保证各对象的调用顺序,同时运行代价相当高昂。 弱 见到就回收 垃圾回收优先低 适用:偶尔使用 WeakReference< String > ? 必须和队列联合使用。

    28320

    新一代垃圾回收器ZGC的探索与实践

    本文从GC之痛、ZGC原理、ZGC调优实践、升ZGC效果维度展开,详述了ZGC在美团低延时场景中的应用,以及在生产环境中取得的一些成果。希望这些实践对大家有所帮助或者启发。 GC之痛 很多低延迟高可用Java服务的系统可用性经常受GC停顿的困扰。GC停顿指垃圾回收期间STW(Stop The World),当STW时,所有应用线程停止活动,GC停顿结束。 GC时,初始转移:日志中Pause Relocate Start。 内存分配阻塞:当内存不足时线程会阻塞GC完成,关键字是"Allocation Stall"。 ? 安全点:所有线程进入到安全点后才能进行GC,ZGC定期进入安全点判断是否需要GC。先进入安全点的线程需要待后进入安全点的线程直到所有线程挂起。 dump线程、内存:比如jstack、jmap命令。 生产环境安装 升JDK 11不仅仅是升自己项目的JDK版本,还需要编译、发布部署、运行、监控、性能内存分析工具项目支持。

    60141

    保|保护学习笔记

    安全的划分标准和安全保护的具体办法,由公安部会同有关部门制定。” 四部委会签关于印发《信息安全保护管理办法的通知》(公通字【2006】7号); 2007年,四部门联合出台《信息安全保护管理办法》,规定了保护制度基本内容、流程及工作要求,信息系统、备案、 安全建设整改、测评实施与管理,以及信息安全产品和测评机构选择,为开展信息安全保护工作提供了规范保障; 2007年,四部门联合颁布《关于开展全国重要信息系统安全保护定工作的通知》; 2008 年,公安部信息安全保护评估中心起草并发布了《信息安全技术 信息系统安全保护基本要求(GB/T 22239-2008)》及配套的相关标准,保护的施行有了技术支撑; 2010年,公安部出台《关于推动信息安全保护测评体系建设和开展测评工作的通知 2.1定 在定的实施过程中,主要参考两个维度:S业务信息安全、A系统服务安全。根据对不同客体的侵害程度,划分为1-5

    14740

    性能优化-各种GC用法和关系

    同时年轻代 触发多线程ParNew GC 日志: ParNew是新生代,CMS是老年代 Parrallel GC: 在JDK8版本中,是server模式JVM的默认GC选择,也被称为吞吐量优先的GC, 命令:-XX:+UseG1GC 日志:garbage-first heap ZGC: 持TB别:根据官方文档来看,在Jdk11时ZGC可支持的最大内存为4TB,在jdk⒀可以支持16TB。 持TB别:根据官方文档来看,在Jdk11时ZGC可支持的最大内存为4TB,在jdk⒀可以支持16TB。 2、中型Region(medium Region):容量为4mb,用于放置容量大于于256kb但小于4mb的对象。 3、大型Region(large Region):容量不固定,大小可变,但必须是2的整数倍,且大小大于于4mb的对象。

    6810

    Java垃圾回收机制详解

    VMThread VMThread主要负责调度执行虚拟机内部的VM线程操作,如GC操作,在JVM实例创建时进行初始化。 ? 由于VMThread本身就是一个线程,启动后通过执行loop方法进行轮询操作,从队列中按照优先取出当前需要执行的VM_operation对象并执行。 其中整个现成的轮询过程分为两步: 第一步 ? 通过执行VMOperationQueue_lock->wait方法待VM operation。 第二步 ? 如果其它线程触发了gc操作,则通过扩展内存代的容量进行分配,最后不管有没有分配成功都返回,待其它线程的gc操作结束; ? 从序号为starting_level的内存代开始回收;如果当前内存代不需要进行回收,则处理下一个内存代,否则对当前内存进行回收;如果当前内存代所有内存代中最老的,则将本次的gc过程升为full gc

    50380

    深入理解Java之垃圾回收

    VMThread VMThread主要负责调度执行虚拟机内部的VM线程操作,如GC操作,在JVM实例创建时进行初始化。 ? 由于VMThread本身就是一个线程,启动后通过执行loop方法进行轮询操作,从队列中按照优先取出当前需要执行的VM_operation对象并执行。 通过执行VMOperationQueue_lock->wait方法待VM operation。 第二步 ? 如果其它线程触发了gc操作,则通过扩展内存代的容量进行分配,最后不管有没有分配成功都返回,待其它线程的gc操作结束; ? 从序号为starting_level的内存代开始回收;如果当前内存代不需要进行回收,则处理下一个内存代,否则对当前内存进行回收;如果当前内存代所有内存代中最老的,则将本次的gc过程升为full gc

    44280

    GC日志分析工具-GCeasy解析

    工具,我们可以达到如下效果: 1、解决内存泄漏问题 GCeasy的高机器学习算法节省了处理神秘的GC日志的时间和麻烦。 我们可以快速检测内存泄漏,长时间的GC暂停,过早的对象升以及许多其他影响性能的问题。 2、在几秒钟内调整Java GC设置 强大的工具,可调整应用程序的内存和GC设置。 作为一种通用型Java GC查看/分析器,其几乎支持所有的垃圾回收策略,包括串行GC、并行GC、CMS GC、G1 GC、ZGC以及其他。 覆盖了Oracle、IBM、HP、Azul、OpenJDK以及其他JVM提供商并支持所有的JDK版本,从最初的1.2到现在的15。 如果没有更多的空闲区域可以升到老一代或复制到幸存者空间,并且由于堆已经处于最大状态而无法扩展,则会发生疏散失败。对于G1 GC,疏散失败需要花费较高的代价。

    31320

    相关产品

    • 1+X 认证

      1+X 认证

      学历证书+若干职业技能等级证书(1+X证书),就是学生在获得学历证书的同时,取得多类职业技能等级证书。目前,腾讯云1+X认证(XCERT)已获得由教育部颁发的“云服务操作管理”和“界面设计”两项1+X职业技能等级证书。XCERT可为高校1+X职业技能等级证书的培训、考核提供系统的服务。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券