每小时进行一次FullGC

线上服务器一小时一次fullGc排查 现状: -Xms:8G -Xmx:8G -Xmn:2G 下面是gc日志输出的配置: CommandLine flags: -XX:CMSInitiatingOccupancyFraction=75 -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/logs/Heap... 阅读详情

1. 问题描述

  在排查接口响应慢的过程中,通过prometheus监控系统看到JVM每隔一小时进行一次FullGC(非常准时),我们都知道FullGC是STW的,所以有必要进行深入排查。

2. 问题分析

  1. 每小时准时进行一次FullGC,我首先怀疑可能是应用本身有定时任务显式调用 System.gc() 进行主动FullGC,排查代码后没有发现主动调用System.gc(),查看gc.log后发现存在System.gc()调用,查看其他应用存在同样的问题,看来是个通用问题;
  2. jstack -l {pid} 查看应用进程的堆栈信息,发现有一个 RMI GC Daemon 和 RMI RenewClean 的 守护线程,应用是开启JMX的,所以会有这些进程;
    在这里插入图片描述
    在这里插入图片描述
  3. 通过进程堆栈信息,查看JDK源码(jdk1.8.0_242),发现 GC.java 中 Daemon 静态内部类有一个自旋进行 System.gc();DGCClient.java 中 sun.rmi.dgc.client.gcInterval 可以配置FullGC时间间隔默认3600秒。
    在这里插入图片描述
    在这里插入图片描述

结论:
  由于应用开启了JMX对接监控系统,开启JMX后JDK默认会每小时进行一次 System.gc();

3. 解决方法

解决方法1:添加 -Dsun.rmi.dgc.client.gcInterval 属性并配置合理的值,默认是3600000毫秒(1小时),可以适当调大;

解决方法2:禁用RMI FullGC,添加-Dsun.rmi.dgc.client.gcInterval属性并将值设置为 Long.MAX_VALUE即 9223372036854775807;

解决方法3:禁止显示调用System.gc(),添加JVM选项 -XX:+DisableExplicitGC,不建议添加此JVM选项禁用显式调用.System.gc(),影响范围过大,且某些三方组件依赖System.gc()。

记一次 频繁Full GC JVM调优 Full GC JVM调优 阅读详情

相关推荐

问题解决:Full GC固定10小时执行一次问题解决记录

文章目录一.问题描述二.问题排查1.问题猜测2.源码分析三.解决办法 一.问题描述 环境:JDK1.8、CentOS 6.9、容器undertow、Spring boot 1.5.8 最近线上运维,发现gclog里打印了很多Full GC的日志,通关gclog前面的时间可以看到间隔时间都是在10小时左右。 大概看了一下都是调用了System.gc()产生的Full GC,然后查看堆栈信息还远...

Sucreyy的博客 1567

FullGC多久一次合适

1.yongGC 执行时间不超过50ms 执行频率不小于10s每次。2.FullGC 执行时间不超过1s执行频率不低于10分钟。

qq_30246135的博客 2709

超实用!VS Code配置C/C++开发环境全攻略

本文提供了一份详细的VS Code配置C/C++开发环境全攻略。从MinGW-w64编译器的选择与安装,到VS Code核心扩展的配置,再到tasks.json构建任务与launch.json调试环境的设置,手把手指导初学者完成从环境搭建到高效开发与调试的全过程,帮助开发者快速上手C/C++项目。

weixin_28829479的博客 185

jvm gc合适时间

1.yongGC 执行时间不超过50ms 执行频率不小于10s每次。2.FullGC 执行时间不超过1s执行频率不低于10分钟。

oZiSeFengYe1的专栏 3447

经典烧脑算法逻辑题--高楼扔鸡蛋:最少次数测出鸡蛋摔碎临界点。

如果在第2层没碎,换到第3层扔.......如果第59层没碎,换到第60层扔;有2个鸡蛋,从100层楼上往下扔,以此来测试鸡蛋的硬度。比如鸡蛋在第9层没有摔碎,在第10层摔碎了,那么鸡蛋不会摔碎的临界点就是9层。因此,我们尝试每10层扔一次,第一次从10层扔,第二次从20层扔,第三次从30层......一直扔到100层。如果第一枚鸡蛋,在50层碎了,第二枚鸡蛋,就从第1层开始扔,一层一层增长,一直扔到第49层。如果第一枚鸡蛋在50层没碎了,则继续使用二分法,在剩余楼层的一半(75层)往下扔。

借雨醉东风的博客 1818

非线性动力学_用MatCont分析非线性动力学方程组(一)

写在前面:笔者打算写两到三篇系列文章介绍MatCont,此为第一篇《用MatCont分析非线性动力学方程组(一)》。MatCont是一个基于Matlab而开发的免费工具包,专门用来做非线性动力学模型分叉、向量场、周期性等分析,符号(连续性)运算和数值(离散性)运算均适用。该工具的开发及研究项目由比利时Ghent大学的Willy Govaerts教授、荷兰Utrecht大学的Yuri Kuznets...

weixin_39700215的博客 2766

Jvm调优笔记

1.MinorGC 和Full GC MinorGC 执行时间不到50ms; Minor GC 执行不频繁,约10秒一次; Full GC 执行时间不到1s; Full GC 执行频率不算频繁,不低于10分钟1次。 Minor GC触发条件:当Eden区满时,触发Minor GC。 Full GC触发条件: (1)调用System.gc时,系统建议执行Full GC,但是不必然执行 (2)老年...

qiangrenpu8881的博客 3267

AI辅助需求分析与提示词生成

文章标题 《AI辅助需求分析与提示词生成》 关键词 人工智能 需求分析 提示词生成 深度学习 机器学习 强化学习 数学模型 系统架构

AI天才研究院 1212

full gc优化时间

Full GC 执行频率不算频繁,不低于 10 分钟 1 次;Minor GC 执行不频繁,约 10 秒一次;Minor GC 执行时间不到 50ms;Full GC 执行时间不到 1s;

oZiSeFengYe1的专栏 655

QCC51XX---人机接口设备协议( HID)

QCC51XX---人机接口设备协议( HID)

weixin_42162924的博客 818

【Matlab算法】MATLAB实现的语音信号降噪算法(附MATLAB完整代码)

语音信号降噪是语音处理领域中的一个关键问题。在实际应用中,语音信号常常被各种环境噪声污染,这不仅影响了语音的质量,还可能导致后续处理(如语音识别)的性能下降。因此,开发有效的降噪算法对于提高语音通信质量、改善语音识别系统性能等具有重要意义。 本文将介绍并实现两种经典的语音信号降噪算法:谱减法和维纳滤波。这两种方法都是基于频域处理的技术,具有实现简单、计算效率高的特点。通过MATLAB实现这些算法,我们可以直观地比较它们的性能和降噪效果。

Albert_Lsk的博客 1329

echarts定时切换数据柱形图

动图有点丑,大概是这么个意思; <template> <div id="scatterAqi" :style="{ width: '100%', height: '100%' }"></div> </template> <script> import echarts from "echarts"; import { EleResize } from "@/assets/js/esresize.js"; export default { .

xn的博客 842

双Orin PCIe RC&EP模式互通

orin pcie 互通

乐于分享 3877

fullgc一小时发生一次的原因

问题:之前在线上遇到过一个问题,每一小时都会执行fullgc,但是此时的堆内存大小是足够的。 分析: 当前我的tomcat的版本是6.0.35,此时tomcat有这样的配置: 6.0.35的org.apache.catalina.core.JreMemoryLeakPreventionListener的261行有如下代码 if (gcDaemonProtection) {

jueshengtianya的专栏 3251

DeepSeek+即梦:AI视频创作从0到1全突破

本文为 DeepSeek 与即梦生成视频全攻略,从前期注册登录、熟悉工具界面及硬件网络准备入手,助读者开启 AI 视频创作。详细阐述利用 DeepSeek 构思脚本、即梦实现画面生成与静态图转动态视频的方法,包括提示词编写、参数调整等技巧。同时介绍后期合成音画、添加字幕特效及多平台适配要点,结合实战案例解析全流程。还分享进阶提示词优化、版权注意等避坑指南,为创作者提供从 0 到 1 的 AI 视频创作完整解决方案。

邓邓子的博客 8104

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

每小时一次定时FullGC问题解决

原文地址:http://www.eussi.top/view/16 一、问题描述 生产运行跟踪过程中,遇到FullGC次数过多的问题。于是在测试环境将GC日志详细打印出来进行重现,主要表现如下: YGC正常,当Eden区即将满之后进行YGC FGC出现的现象很奇怪,老年代内存还有相当大的空间,整个年轻代装进老年代都不是问题,但是很奇怪却出现了FGC。 长时间运行下去老年代内存也没有因为越积越多出...

Laiix的博客 4017

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Tomcat 6.0.33 每小时触发FullGC一次

Tomcat 6.0.33 每小时触发FullGC一次 tomcat为了防止内存泄露,会注册一个监听器,周期性的触发System.gc()。

u012538947的专栏 456

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jvm 优化 关闭一小时一次fullgc

tomcat版本是6.0.35。1 tomcat的server.xml配置了&lt;!-- Prevent memory leaks due to use of particular java/javax APIs--&gt;  &lt;ListenerclassName="org.apache.catalina.core.JreMemoryLeakPreventionListener"/&gt;...

yrlzmm的专栏 869

java每隔一小时fullgc_JVM菜鸟进阶高手之路六(JVM每隔一小时执行一次Full GC)

以为上次问题是rmi的问题就此结束了,但是问题并没有结束,其实本次问题不是rmi问题导致的,但是rmi也的确可能会有sys.gc fullgc问题。查看GC统计汇总情况:jstat -gcutil pid 3s30参考gc,发现大概一小时运行一次FGC,特别奇怪,笨神一看这样的问题就知道是system gc导致的System.gc()的默认效果是引发一次stop-the-world的full G...

weixin_35843035的博客 1213

JVM每小时执行一次FULL GC问题

JVM每小时执行一次FULL GC问题参考文章链接:http://liuxi.name/blo g/20160608/jvm-full-gc-hourly.html

吖脖(博) 723

Tomcat的JreMemoryLeakPreventionListener1小时执行一次fu...

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34248705的博客 321

JVM菜鸟进阶高手之路六(JVM每隔一小时执行一次Full GC)

JVM菜鸟进阶高手之路六(JVM每隔一小时执行一次Full GC) 转载请注明原创出处,谢谢! 上次分析详细地址在:http://www.cnblogs.com/lirenzuo/p/7531700.html 以为上次问题是rmi的问题就此结束了,但是问题并没有结束,其实本次问题不是rmi问题导致的,但是rmi也的确可能会有sys.gc fullgc问题。 查看GC统计汇总情况: js...

evilcry2012的专栏 497

full GC触发的条件

full GC触发的条件 除直接调用System.gc外,触发Full GC执行的情况有如下四种。 1. 旧生代空间不足 旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足,则抛出如下错误: java.lang.OutOfMemoryError: Java heap space 为避免以上两种状况引起的FullGC,调优时应尽量做到让对象...

lzh_86的博客 553
上一篇: Redis5.0集群搭建
下一篇: prometheus jmx-exporter 暴漏HTTP服务端口无法获取监控数据
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值