问题:之前在线上遇到过一个问题,每一小时都会执行fullgc,但是此时的堆内存大小是足够的。

分析:

当前我的tomcat的版本是6.0.35,此时tomcat有这样的配置:

6.0.35的org.apache.catalina.core.JreMemoryLeakPreventionListener的261行有如下代码
if (gcDaemonProtection) {try {
Class<?> clazz = Class.forName("sun.misc.GC");Method method = clazz.getDeclaredMethod("requestLatency",new Class[] {long.class});method.invoke(null, Long.valueOf(3600000));
表明一小时显示的调用一次调用System.gc()。(按照sun jdk规范,不保证立即执行,并且注意的是,我们有时候监控到的fullGC不一定是这个触发的。)
我又看了6.0.43(6的最新版本)Class<?> clazz = Class.forName("sun.misc.GC");Method method = clazz.getDeclaredMethod("requestLatency",new Class[] {long.class});method.invoke(null, Long.valueOf(Long.MAX_VALUE - 1));
这个世界触发值,已经改为LONG的最大值,说明tomcat的高版本不再是一个小时显示的调用System.gc()了.

解决方案:

   a.可以注释掉tomcat->server.xml的这个   <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
   b.看代码逻辑,可以加个gcDaemonProtection开关,<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" gcDaemonProtection="false"/>
   c 通过 -XX:+DisableExplicitGC 来变相消除显式调用full GC。
   d 可以升级tomcat。


参考:http://blog.csdn.net/chenleixing/article/details/46706039

fullgc一小时发生一次的原因相关推荐

  1. MOSS中图形化通过记录日志的方式来进行查看“发生意外错误”的原因WSP下载

    大家如果有需要制作SharePoint解决方案包的话,不妨试一试 WSPBuilder,它的作者是 Carsten Keutmann,把上次的"MOSS中图形化通过记录日志的方式来进行查看& ...

  2. java发生fullgc的时机_2021-01-02:java中,MinorGC、MajorGC、FullGC 什么时候发生?

    福哥答案2021-01-02: MinorGC 在年轻代空间不足的时候发生. MajorGC 指的是老年代的 GC,出现 MajorGC 一般经常伴有 MinorGC. FullGC 老年代无法再分配 ...

  3. VS发生RC1107错误的原因

    最近MFC程序中,用VS的资源编辑打开时,老是发生 fatal error RC1107: invalid usage; use RC /? for Help 这种错误,记得前几天解决过一次,但是当时 ...

  4. 什么情况下会发生full Gc?如何排查频繁发生full Gc的原因?

    GC就是Java的垃圾回收机制,要了解什么情况下会发生GC(即GC得触发条件),我们需要先了解JVM的内存模型结构,之前一篇文章已经详细讲解了Jvm的内存模型结构,而通常来说,GC主要针对的是堆(ja ...

  5. 多多参谋:如果拼多多48小时没有物流信息怎么办?原因是什么?

    事实上,一些拼多多企业也非常关心商店的售后服务,但不可避免地会出现这样或那样的售后问题.例如,48小时内没有物流信息.在这种情况下我们该怎么办? 多多情报通注册入口 如果拼多多48小时没有物流信息怎么 ...

  6. 详细分析内部类的发生内存泄漏的原因

    文章目录 避免内部类中的内存泄漏 步骤1:内部类引用其外部类 步骤2:构造函数获取封闭的类引用 步骤3:声明一种新方法 内存泄漏的解剖 避免内部类中的内存泄漏 使用内部类时要当心垃圾收集 如果您已了解 ...

  7. IBinder进行向下类型转换发生ClassCastException的可能原因

    参考.https://stackoverrun.com/cn/q/3910896 1.If service to bind is in different process with the calle ...

  8. python 读取图像发生自动旋转的原因

    手机或者相机拍摄照片后,传到电脑中,使用PIL读取时有时会发生旋转: 查看两类图像的具体属性,发现仅有EXIF值有差异 通过查阅资料发现:EXIF代表了图像的方位信息,包含旋转0°.90°.180°和 ...

  9. 项目一启动就发生两次FGC原因

    原因: JDK8未指定-XX:MetaspaceSize大小, 默认情况下很小,因此已启动就触发了CMS进行扩容,一次CMS至少会发生两次FGC, 因此加上在JVM参数上-XX:MetaspaceSi ...

最新文章

  1. 十四、进程互斥的硬件实现方法
  2. 作业收缴系统设计手册(自写开源小系统)
  3. 证书服务器无法启动,使用 SSL 证书后服务无法启动 - SQL Server | Microsoft Docs
  4. superset可视化-deck.gl 3D Hexagon与deck.gl Grid与deck.gl Screen Grid
  5. 剑指offer之二叉搜索树和双向链表
  6. 如何在我们项目中利用开源的图表(js chart)
  7. 1_数据分析—数据载入、导出和探索
  8. SQL Server存储过程的使用
  9. 【转】编辑器与IDE
  10. rocketmq 双主双从同步写安装部署
  11. 如何查看chrome的版本
  12. 汉化破解:ASPack 2.12 -gt; Alexey Solodovnikov -- Dump
  13. 实现iOS系统相机九宫格滤镜的思路
  14. css3的vw单位,vh单位的讲解,以及vw vh的兼容性
  15. python len ljust_python中ljust的用法
  16. 嵌入式LINUX搭建arm环境,手把手教你嵌入式ARM开发环境搭建
  17. 微信小程序账号长时间未登录冻结解封
  18. 12个必不可少的Firefox插件
  19. kerberos+druid+phoenix
  20. 2023计算机毕业设计SSM最新选题之java“逢遇”个人博客平台qaoxv

热门文章

  1. 5G NGC — NEF Traffic Influence Service
  2. C 语言编程 — 程序的编译流程
  3. Python3编写网络爬虫04-爬取猫眼电影排行实例
  4. pfSense 2.4.4-RELEASE现已发布!
  5. JavaScript获取鼠标左键选中的内容
  6. LunarPages空间500错误原因及解决办法
  7. 伟世盾安助国电高级培训中心实现一网双管
  8. 详细解析LTE调度算法
  9. Qt自动填写表单并点击按钮,包括调用js方法
  10. Python基础 - 第九天 - paramiko模块、进程、线程