昨天生产发布完后,收到告警短信5分钟内FullGc次数大于2次。当时一脸懵,应用上线前做过压力测试,没测出jvm fullgc问题啊。所以按照告警时间去查日志,发现基本为spring初始化动作。

后面过了半个小时也没有收到告警,基本猜测是meta区的问题

下面是定位过程。

1,首先ps -ef|grep java
cd /opt/wildfly/openjdk/openjdk-1.8.0_92/bin

2,[root@uqotsxgs1a01 bin]# ./jmap -heap 111255
Attaching to process ID 111255, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.92-b00

using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC

Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 4294967296 (4096.0MB)
NewSize = 174456832 (166.375MB)
MaxNewSize = 174456832 (166.375MB)
OldSize = 4120510464 (3929.625MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)(初始meta大小为20M)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB
G1HeapRegionSize = 0 (0.0MB)

3,查看实际meta大小
[root@uqotsxgs1a01 bin]# ./jstat -gccapacity 111255
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC 
170368.0 170368.0 170368.0 17024.0 17024.0 136320.0 4023936.0 4023936.0 4023936.0 4023936.0 0.0 1202176.0 172332.0 0.0 1048576.0 19756.0 1951 7
[root@uqotsxgs1a01 bin]# ./jstat -gc 111255
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 
17024.0 17024.0 0.0 938.0 136320.0 13046.0 4023936.0 225361.8 172332.0 160840.8 19756.0 16833.0 1951 61.236 7 0.799 62.035

而 实际 meta可用为173M,实际已用160M,Fullgc次数为 7.。所以问题很明显,随着加载类的增多,我们的应用meta区远超过20m的大小,所以会触发fullgc,扩容metaspace。至此,问题已经很明确,因为jdk1.8的默认参数,导致需要扩容meta区,因此出现了fullgc。

4,修改meta区大小,重启服务
JAVA_OPTS="$JAVA_OPTS -Xms4096m -Xmx4096m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m"

5,查看修改的Fullgc次数 为 1,解决。
[root@uqotsxgs1a01 bin]# ./jstat -gc 35656
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 
17024.0 17024.0 3228.8 0.0 136320.0 100896.4 4023936.0 195764.5 159616.0 150182.8 18816.0 16251.0 84 4.365 1 0.578 4.943

记录一次生产应用启动后发生多次FullGc的解决过程相关推荐

  1. linux 防止启动多个进程,linux下tomcat启动后出现多个java进程解决办法

    当前位置:我的异常网» Linux/Unix » linux下tomcat启动后出现多个java进程解决办法 linux下tomcat启动后出现多个java进程解决办法 www.myexception ...

  2. windows系统下Mysql服务启动后立即关闭问题-排查及解决方法

    文章目录 1. 问题情况: 1.1 启动 1.2 短暂显示启动成功 1.3 显示停止 2. 解决方法: 2.1 查看日志: 2.1.1 到指定目录下 2.1.2 排查日志,发现了两条ERROR语句: ...

  3. 制成U盘启动后U盘容量变小————解决办法!!!!

    装过系统的人 都不陌生U盘启动,相信很多人都知道,用U盘制成启动盘后U盘容量会变小,即使格式化也不能回复,那么我们来看看是怎么回事,怎么解决!! 1.先上张图,看看我们的U盘在制作成U盘启动后变成什么 ...

  4. 地税某数据库异常重启和重启后数据库运行缓慢问题的解决过程

    数据库版本:10.2.0.3 数据库架构:双节点RAC 主机平台:IBM小型机,AIX5.3 这次问题解决过程确认辽宁目前存在2个问题,记录如下: 第一,数据库实例异常重启.第二,数据库异常重启后造成 ...

  5. linux:记录一次 处理tomcat启动卡死无报错现象的曲折过程

    一.环境 系统:CentOS 5.5 tomcat 6.0 jdk1.6 二.问题现象     我们公司近期请人做的某个项目的一期要完成了,因对方负责java开发的工程师都不懂linux,而且也没有专 ...

  6. LWIP 以太网先启动后插入网线无法入网的解决办法

    运行环境:系统RT-thread lwip2.0 mcu: GD32F470 问题描述:先插入网线后启动时以太网联网正常,但先启动,后插入网线时,无法入网. 原因:启动时若未插入网线,以太网初始化失败 ...

  7. VMware下安装win10启动后进入Boot Manger界面如何解决

    Boot Manger boot manager是启动管理器的意思,当一个引导管理器获得控制权时,它能做的一件事就是加载另一个引导管理器:而当开机出现BootManager时,则证明系统的启动文件丢失 ...

  8. IP摄像机RTSP协议视频平台EasyNVR点击程序启动后闪退问题排查及解决

    前段时间,TSINGSEE青犀视频的研发团队的技术支持在给客户进行EasyNVR排错,这位客户的报错主要是EasyNVR.exe程序无法进行启动并且启动就会闪退,虽然使用服务方式启动都显示正常,但是服 ...

  9. 用WinImage创建的映像启动后A盘不可写的解决办法

    准备把maxdos6整进pxelinux的菜单中,结果发现通过pxelinux引导maxdos6.pxe无法启动,而maxdos6.sys也不是标准的镜像,通过memdisk也引导不成功.没办法,只能 ...

最新文章

  1. 济宁市机器人科技乐园_【喜讯】山东省青少年科技创新大赛、机器人竞赛,济宁市信息学奥赛获奖名单新鲜出炉...
  2. python3 日志检索异常抛出异常 raise KeyError(key),KeyError: 'formatters'
  3. 需求分析师的工作重点
  4. Ubuntu Apache 服务之 PHP 配置
  5. 什么是MCU里应尽量遵循的寄存器谨慎赋值法?
  6. 关于ApplicationContextAware使用深入理解
  7. 《ArcGIS Runtime SDK for Android开发笔记》——(10)、ArcGIS Runtime SDK支持的空间数据类型...
  8. github java开源项目经验_Java 开源项目 GitHub 趋势周报 20201230
  9. 重磅发布 | 蚂蚁金服与电子标准院达成战略合作 共同推进数据安全行业的标准化...
  10. windows10风格 springboot mybatis 项目框架源码 shiro 集成代码生成器
  11. ASP.NET Web API 2框架揭秘
  12. Senparc.Weixin.MP SDK 微信公众平台开发教程(二):成为开发者
  13. qpsk matlab仿真,QPSK 调制与解调(Matlab仿真)
  14. tomcat 如何进行优化?优化方案有哪些?
  15. 新型的铁塔基站“能源管家”
  16. [软件工程基础实验]生命游戏
  17. 100多个经典常用的jQuery插件大全实例演示和下载
  18. 网站版面布局设计原理
  19. 前端知识之JavaScript
  20. adobe photoshop cs4 注册码

热门文章

  1. Jetbrains IDEA 打不开的解决方法(多次重装IDEA,突然打不开)
  2. html5自学总结及分析,HTML学习记录和总结
  3. cvc-complex-type.2.4.d: 发现了以元素 ‘base-extension‘ 开头的无效内容。此处不应含有子元素。
  4. [NE-A] 动作电位 Action Potential
  5. 吴式太极拳老架(原乐志先生授)(2008.04.09修改)
  6. 通过下棋理解面向对象。
  7. 5、求方程的根的两种方法
  8. 教程:动手用自己电脑搭建一个网站 (nat123 花生壳 动态域名 个人电脑做服务器)...
  9. 科技青年 | 训练机器说话20年,他勇闯阿里巴巴宝库
  10. 没有无线网卡的服务器开wifi,电脑没无线网卡怎么开wifi热点 160wifi一键上网方法流程...