gc就是fullgc吗 major_线上出现fullgc问题如何排查?

1.问题描述

线上出现fullgc报警,每5分钟一次

2.背景知识

1. 程序执行了System.gc()

  1. 执行了jmap -histo:live pid命令
  2. 在执行minor gc的时候进行的一系列检查
    执行Minor GC的时候,JVM会检查老年代中最大连续可用空间是否大于了当前新生代所有对象的总大小。 如果大于,则直接执行Minor GC(这个时候执行是没有风险的)。 如果小于了,JVM会检查是否开启了空间分配担保机制,如果没有开启则直接改为执行Full GC。 如果开启了,则JVM会检查老年代中最大连续可用空间是否大于了历次晋升到老年代中的平均大小,如果小于则执行改为执行Full GC。 如果大于则会执行Minor GC,如果Minor GC执行失败则会执行Full GC
  3. 使用了大对象
  4. 在程序中长期持有了对象的引用

3.排查步骤

注意: JVM在执行dump操作的时候是会发生stop the word事件的,也就是说此时所有的用户线程都会暂停运行。

3.1通过JVM参数获取dump文件

# 1.线上环境如果有流量需要在启动服务脚本中加入如下JVM参数,表示在发生fullgc的时候自动dump
-XX:HeapDumpBeforeFullGC
# 2.与第一个JVM参数配套使用,指定dump文件的保存路径,便于排查问题,路径也可以是相对路径
-XX:HeapDumpPath=保存dump文件的文件绝对路径# 说明:如果加入这两个jvm参数还是没有dump下来文件,可能是你的jvm的参数中有其他的参数导致dump失败,排查看是否有如下参数,如果有去掉即可
-XX:+DisableExplicitGC

3.2通过JDK自带的工具jmap获取dump文件

# 导出内存dump文件
jmap -F -dump:live,file=jmap.hprof [PID] ##### 3.3把dump文件从线上主机下载到本地
命令格式:  
scp local_file remote_username@remote_ip:remote_folder  
或者
scp local_file remote_username@remote_ip:remote_file  
或者
scp local_file remote_ip:remote_folder  
或者
scp local_file remote_ip:remote_file##### 3.4通过JDK自带的jvisualvm工具分析或者下载三方软件jprofiler来分析dump文件即可##### 3.5最重要的一点,要把fullgc发生时刻的dump文件和正常没有发生fullgc时间的dump文件都下载到本地,然后对比观察分析方便找到问题的原因

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

修改 jquery.validate.js 支持非form标签

尝试使用markdown来写一篇blog,啦啦啦 源代码传送门:github 在特殊情况下我们使用jquery.validate.js对用户输入的内容做验证的时候,表单并不是一定包含在form之中,有可能是一个div弹层,有可能是嵌套在form里面的一个d…

Linux常用文件和目录操作

cd:变换目录pwd:显示弼前目录mkdir:建立一个新目录rmdir:删除一个空目录 cp:复制目录或者文件 mv:移动文件或者目录 rm:删除文件或者目录 转载于:https://www.cnblogs.com/lijingpeng/archive/2012/09/07/2675982.html

淘淘商城项目mysql服务器_SpringMVC+Spring+Mybatis+Mysql+Maven+Svn[ 淘淘商城项目环境搭建 ]...

背景:淘淘商城项目的环境搭建说明:采用SpringMVCSpringMybatisMysqlMavenSvn结构搭建,在开发之中可以参考其结构和搭建步骤去搭建实际的工程项目工程结构简图:项目结构:---------------------------------------------…

bean validation校验方法参数_项目启动时首先校验Spring Boot配置参数

1. 概述在项目实际开发过程中,为了更好的复用,我们参考Spring Boot Starters,封装了许多企业内部中间件的starter。这些中间件的接入都需要申请并在项目中配置一些特定的参数。我们通过ConfigurationProperties注解,增加了在配置过…

进一步理解:inline-block,vertical-align,line-height

看似三个最常见的概念背后却隐藏了很深的很深“水” 那有多深呢&#xff0c;先来看下面的代码 引出问题 <style>.inline-block {display: inline-block;}.border {border: 1px solid #000000;}.span {width: 100px;height: 100px;}.bak {background: #33CCFF;} .o-hidden…

刷系统——黑屏问题

引用&#xff1a;http://www.miui.com/thread-344361-1-1.html 此贴大部分内容源自魔趣论坛V大的帖子&#xff0c;本人经过整理后发出&#xff0c;特此声明原帖地址&#xff1a;http://bbs.mfunz.com/thread-172610-1-1.html——此贴献给小白们&#xff0c;老鸟一笑而过吧近期有…

LeetCode OJ - Recover Binary Search Tree

题目&#xff1a; Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. Note:A solution using O(n) space is pretty straight forward. Could you devise a constant space solution? 解题思路&#xff…

mysql中间件是运维工作内容_linux运维工作的七项内容

一&#xff0c;【基础运维检查】或叫 例行检查 或叫 例行巡检mail cacti1.理解例行检查列表的内容、检查项的含义以及可能引发的问题。2.按照例行检查表&#xff0c;定期检查系统状态&#xff0c;发现异常立即通报并推进解决。3.定期检查线上服务模块&#xff0c;排除可疑进程,…

java executor_Java并发编程(08):Executor线程池框架

一、Executor框架简介1、基础简介Executor系统中&#xff0c;将线程任务提交和任务执行进行了解耦的设计&#xff0c;Executor有各种功能强大的实现类&#xff0c;提供便捷方式来提交任务并且获取任务执行结果&#xff0c;封装了任务执行的过程&#xff0c;不再需要Thread().st…

Exchange 2007迁移Exchange 2010应该注意的13件事

1. Exchange 2007可以支持升级到Exchange 2010&#xff0c;但需要提前将Exchange 2007所有服务器环境升级至 SP2或以上版本。2. Exchange 2007如果更新至SP2或以上版本&#xff0c;则建议按照以下顺序进行各角色的更新&#xff1a; CAS、UM、HUB、Edge、Mailbox。3. …

dom4j操作XML

(一&#xff09;创建Document的基本操作 /** * XML基本操作 */ public void BaseOperation(){ //创建一个document Document documentDocumentHelper.createDocument(); //创建根结点 Element rootdocument.addElement("root"); //为根结点添加一个book节点 Element …

Oracle数据库中闪回恢复的详细分析

Oracle9i开始提供闪回查询&#xff0c;以便能在需要的时候查到过去某个时刻的一致性数据&#xff0c;这是通过Undo实现的。这个功能有很大的限制&#xff0c;就是相关事务的undo不能被覆盖&#xff0c;否则就无力回天了。oracle10g大大的增强了闪回查询的功能&#xff0c;并且提…

python 查看当前目录_「Python」打包分发工具setuptools学习

❝setuptools是python标准的打包分发工具&#xff0c;它可以将我们编写的python项目打包安装&#xff0c;这样其他同事就可以像调用标准库或python第三方库那样直接使用&#xff1b;也可以将项目上传到Pypi供更多人的下载安装使用。❞1. 项目结构项目结构❝这是一个打包构建好的…

如何杀掉D状态的进程?[zt]【转】

转自&#xff1a;http://blog.csdn.net/chinalinuxzend/article/details/4288791 [-] 如何杀掉D状态的进程zt相关博文原贴:http://www.xclinux.cn/?p752 如何杀掉D状态的进程&#xff1f;[zt] 状态为 D (Uninterruptible sleep) &#xff0c;以及状态为 Z (Zombie)这些垃圾进程…

九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)

九月十月百度人搜&#xff0c;阿里巴巴&#xff0c;腾讯华为小米搜狗笔试面试八十题 &#xff08;参与算法&面试题交流与讨论&#xff0c;请加群&#xff1a;30382647&#xff09;引言 自发表上一篇文章至今&#xff08;事实上&#xff0c;上篇文章更新了近3个月之久&#…

mysql性能结构优化原理_MySQL性能管理及架构设计(二):数据库结构优化、高可用架构设计、数据库索引优化...

一、数据库结构优化(非常重要)1.1 数据库结构优化目的1、减少数据冗余&#xff1a;(数据冗余是指在数据库中存在相同的数据&#xff0c;或者某些数据可以由其他数据计算得到)&#xff0c;注意&#xff0c;尽量减少不代表完全避免数据冗余&#xff1b;2、尽量避免数据维护中出现…

python git是什么_python爬虫之git的使用

一、简单认识&#xff1a; 1、初始化文件夹为版本控制文件夹&#xff0c;首先建立一个文件夹&#xff0c;进入这个文件夹以后输入git init初始化这个文件夹。2、Git几种位置概念 1、本地代码&#xff1a;本地更改完代码以后&#xff0c;虽然是存放在git的文件夹里面&#xff0c…

产品经理网站数据分析之测量问题现状(二)

本章续接上文&#xff0c;主要讲解流程图的绘制要领&#xff0c;以及示例。 1、基础流程图 基础流程图应该简明扼要地描述出流程的主要结构&#xff0c;在弄清楚流程的起点、终点&#xff0c;以及主要步骤后&#xff0c;按照流程的先后顺序&#xff0c;按照要展示的流程长短比例…

键盘流的逆袭- Idea 中使用 VIM mode 提高生成效率

Idea 中使用 VIM mode 提高生成效率 安装配置 Idea 的 vim 插件 先挖坑&#xff0c;后续再填。这个毫无技术含量&#xff0c;不写了&#xff0c;自己去搜吧。 快捷键代替鼠标 打开文件 按两下 shift 键 > 输入类目文件名按 command e &#xff0c;打开最近编辑的文件列表&a…

git 撤销挂起的更改_Timer计时任务因系统时间的修改导致挂起解决方案

之前开发的一款运行在定制Android设备上的一个实时监控程序发生了一个很奇怪的问题&#xff1a;关机状态下放置了半个月左右的时间之后&#xff0c;再次开机使用&#xff0c;使用到一半的时候&#xff0c;显示界面就卡死在某一个状态下了(显示界面只显示一行文字&#xff0c;代…