生产上发现每次full gc都会花上5~20s的时间,查看了下,发现每一个小时都会触发一次full gc,查了下资料是rmi导致的。 但是zabbix监控需要开启rmi,不想关闭。查了下资料发现可以通过-XX:+DisableExplicitGC可以把system.gc忽略,从而不触发full gc,这样如果堆真的满了也不会触发full gc。 最后找到了-XX:+ExplicitGCInvokesConcurrent and -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses这2个参数,需要配合-XX:+UseConcMarkSweepGC使用,可以将system.gc的full gc转换成CMS gc。

-XX:+ExplicitGCInvokesConcurrent and -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses

如今,被广泛接受的最佳实践是避免显式地调用GC(所谓的“系统GC”),即在应用程序中调用system.gc()。然而,这个建议是不管使用的GC算法的,值得一提的是,当使用CMS收集器时,系统GC将是一件很不幸的事,因为它默认会触发一次Full GC。幸运的是,有一种方式可以改变默认设置。标志-XX:+ExplicitGCInvokesConcurrent命令JVM无论什么时候调用系统GC,都执行CMS GC,而不是Full GC。第二个标志-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses保证当有系统GC调用时,永久代也被包括进CMS垃圾回收的范围内。因此,通过使用这些标志,我们可以防止出现意料之外的”stop-the-world”的系统GC。

linux启动tomcat不停的触发gc,tomcat的rmi触发的full gc的时间过长的优化相关推荐

  1. Go 都在什么时候触发GC,能手动触发GC吗?

    Go 语言作为一门新语言,在早期经常遭到唾弃的就是在垃圾回收(下称:GC)机制中 STW(Stop-The-World)的时间过长. 那么这个时候,我们又会好奇一点,作为 STW 的起始,Go 语言中 ...

  2. linux tomcat 进程杀掉_Linux下Tomcat的启动、关闭、杀死进程

    打开终端 cd /java/tomcat #执行 bin/startup.sh #启动tomcat bin/shutdown.sh #停止tomcat tail -f logs/catalina.ou ...

  3. Linux启动tomcat命令行关闭后服务会停止

    最近因为项目需要迁移到云服务器上.自己一个开发还要兼顾运维的事情真是太难了.由于不熟悉.遇到一些各种各样的小坑.在此记录一下. 问题:Linux启动tomcat命令行关闭后服务会停止? 一般Linux ...

  4. linux tomcat 改端口号,Linux下启动tomcat、配置tomcat后台账号、修改tomcat端口

    启动tomcat以前,请确认已经配置好java环境变量.还有记得关闭防火墙.不然不能正常访问tomcat.java 1.启动tomcattomcat 一.先找到tomcat安装包测试 二.解压缩安装包 ...

  5. Linux启动tomcat

    文章目录 1.启动tomcat 1.1 ./startup.sh或者sh startup.sh----没有控制台信息,关闭cmd就停止服务 1.2 nohup ./startup.sh &-- ...

  6. tomcat 9 无法启动_运维常见问题汇总tomcat篇

    tomcat介绍 Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet.JSP 程序的首选. #tomcat 运行环境介绍 1. ...

  7. Linux环境安装卸载JDK以及安装Tomcat和发布Java的web程序

    Linux环境:CentOS7.2 一.安装JDK 安装好的CentOS会自带OpenJdk,最好还是先卸载系统自带的JDK,然后自己重新去Oracle网站下载最新的JDK安装. 1.卸载系统自带的J ...

  8. 【Linux】Linux简单操作之安装、使用tomcat

    tomcat安装 1.下载tomcat到指 文件夹 : home / local 中 2.将文件见解压到文件夹 :usr / local 当中 代码实现 : tar -zxvf -C /usr/loc ...

  9. Linux系统下怎样配置多个Tomcat

    Linux系统下怎样配置多个Tomcat同时运行呢,首先修改变量为第一个tomcat,然后修改第二个tomcat启动的脚本 1.修改环境变量 # vi /etc/profile ####### 工程1 ...

最新文章

  1. mvc登录实例 mysql_spring mvc + mybatis + mysql 调整的一个简单的登录例子
  2. 番茄花园该打,反垄断更该升级
  3. [ActionScript 3.0] 喷泉效果
  4. shiro将session认证改成token认证_初步学习Shiro框架 第一集
  5. 对VLAN间路由实验的总结
  6. 计算机网络机械特性是指,《计算机网络与通信》第1——3章 习题及思考题
  7. 判断浏览器是IE的几种方式
  8. eclipse环境NDK问题汇总
  9. UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0x80 in position 2
  10. 模拟https类型的get,post请求时,碰到证书不信任,无法正常获取返回内容的异常
  11. 大一计算机基础教程期末考试,大一大学计算机基础教程期末考试题.doc
  12. python编写自动更换ip工具的代码
  13. Android项目无用文件 BAT批处理 清理
  14. Synonyms——中文近义词工具【含源码解析与改进】
  15. 使用vue实现的人物关系图谱
  16. 有了800件T恤测量数据,能选出最合身的尺寸吗?
  17. 关于sizeof(arr)/sizeof(arr[0])解读(plus细节讲解增加)
  18. 网络Socket编程
  19. 随机过程的概念与基本类型
  20. 【LeetCode刷题】重叠区间问题

热门文章

  1. STL容器是否是线程安全的
  2. exchange迁移测试作业
  3. nginx忽略favicon.ico日志
  4. linux qemu 使用方法
  5. python 报错 AttributeError: module ‘time‘ has no attribute ‘clock 解决方法
  6. centos7 安装无线工具包wireless-tools 包含 iwlist,iwconfig命令
  7. linux 用户身份与进程权限
  8. linux下查看、删除指定文件名长度的文件
  9. 使用TDI与WinSock进行客户端服务器编程
  10. linux 同步与异步--阻塞与非阻塞型I/O