【开发篇】十二、GCeasy报告分析

文章目录

  • 1、图一:正常情况
  • 2、图二:缓存对象过多
  • 3、图三:内存泄漏
  • 4、图四:频繁持续Full GC
  • 5、图五:元空间不足导致的Full GC

1、图一:正常情况

正常的堆内存如图:

  • 锯齿状
  • 对象创建后内存占用上升,Full GC后下降到和之前接近的位置

在这里插入图片描述

2、图二:缓存对象过多

特点:

  • 锯齿状
  • 对象创建后内存占用上升,Full GC后下降到和之前接近的位置
  • 但每次下降后的位置,其值也较大

这说明程序中保存了大量的缓存对象,GC后无法回收。比如程序中一些缓存用的Map,类似Map --> Redis --> MySQL的递进关系,这种不算内存泄漏,因为它有在发挥作用。这种缓存多了也不尽都是好处,可用MAT找到缓存了哪些对象。

在这里插入图片描述

3、图三:内存泄漏

  • 锯齿状
  • 每次垃圾回收之后下降到的内存位置越来越高

在这里插入图片描述

4、图四:频繁持续Full GC

如此频繁Full GC,给用户的感觉就是系统变卡了、变慢了,这是因为吞吐降低了(大量的时间用在了Full GC上,而不是用在了处理用户请求上)

在这里插入图片描述

大量的对象在内存中创建,同时JVM不停的Full GC在释放内存,可以看到内存有一定的下降(如下图中我黄色圈圈起来的白色三角),但很快就被新创建的对象又占满了

【相关的GcEasy报告】

从对象数据中也可以得到验证:每秒能产生198.76M大小的对象,晋升到老年代的也有65.85M数据,可见对象创建的确实很快

在这里插入图片描述

再看下面引起GC的原因,前两个是:

  • Ergonomics:垃圾回收器会根据自己的需要,比如保持一个较高的吞吐量或者比较短的STW,而触发的GC
  • Allocation Failure:对象在分配到年轻代或者老年代的时候,空间不足了,导致了GC。此原因引起的GC占了45次。

在这里插入图片描述

对象产生速度过快,而堆空间较小,导致了频繁的Full GC,进而影响到了客户请求的响应时间

5、图五:元空间不足导致的Full GC

特点:堆内存处于比较低的状态,但却频繁发生Full GC

在这里插入图片描述

【相关的GcEasy报告】

相关报告分析:

在这里插入图片描述

再看GC原因:将近5000次是因为元空间的大小达到了阈值(Metadata GC Threshold)

在这里插入图片描述

但发现这里JVM给元空间分配了1.2G,占用了652M,似乎没有到元空间阈值,这是JVM会动态的去计算元空间的阈值,只要元空间大小超过了这个阈值,就会触发Full GC,而这里的652可能已经多次超过了这个动态阈值

在这里插入图片描述

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

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

相关文章

第十二章 微服务核心(一)

一、Spring Boot 1.1 SpringBoot 构建方式 1.1.1 通过官网自动生成 进入官网:https://spring.io/,点击 Projects --> Spring Framework; 拖动滚动条到中间位置,点击 Spring Initializr 或者直接通过 https://start.spring…

ffmpeg拉流并解码

流程 注意事项 版本不同导致的api差异资源安全释放

Linux安装redis(基于CentOS系统,Ubuntu也可参考)

前言:本文内容为实操记录,仅供参考! 一、下载并解压Redis 1、执行下面的命令下载redis:wget https://download.redis.io/releases/redis-6.2.6.tar.gz 2、解压redis:tar xzf redis-6.2.6.tar.gz 3、移动redis目录&a…

Tensorflow2.0笔记 - metrics做损失和准确度信息度量

本笔记主要记录metrics相关的内容,详细内容请参考代码注释,代码本身只使用了Accuracy和Mean。本节的代码基于上篇笔记FashionMnist的代码经过简单修改而来,上篇笔记链接如下: Tensorflow2.0笔记 - FashionMnist数据集训练-CSDN博…

HTTP,Servlet

HTTP 概念:HyperTextTransferProtocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则 HTTP协议特点: 1.基于TCP协议:面向连接,安全 2.基于请求-响应模型的:一次请求对应一次响应 …

java数据结构与算法刷题-----LeetCode278. 第一个错误的版本

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 二分查找 二分查找 解题思路:时间复杂度O( l o g 2 …

Linux文件IO(2):使用标准IO进行文件的打开、关闭、读写、流定位等相关操作

目录 前言 文件的打开和关闭的概念 文件的打开 文件的打开函数 文件打开的模式 文件的关闭 文件的关闭函数 注意事项 字符的输入(读单个字符) 字符输入的函数 注意事项 字符的输出(写单个字符) 字符输出的函数 注意…

【Web应用技术基础】CSS(6)——使用 HTML/CSS 实现 Educoder 顶部导航栏

第一题&#xff1a;使用flex布局实现Educoder顶部导航栏容器布局 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Educoder</title><script src"https://cdn.staticfile.org/jquery/1.1…

论文笔记:分层问题-图像共注意力问答

整理了2017 Hierarchical Question-Image Co-Attention for Visual Question Answering&#xff09;论文的阅读笔记 背景模型问题定义模型结构平行共注意力交替共注意力 实验可视化 背景 视觉问答(VQA)的注意力模型在此之前已经有了很多工作&#xff0c;这种模型生成了突出显示…

机器学习优化算法(深度学习)

目录 预备知识 梯度 Hessian 矩阵&#xff08;海森矩阵&#xff0c;或者黑塞矩阵&#xff09; 拉格朗日中值定理 柯西中值定理 泰勒公式 黑塞矩阵&#xff08;Hessian矩阵&#xff09; Jacobi 矩阵 优化方法 梯度下降法&#xff08;Gradient Descent&#xff09; 随机…

Python列表、元组、字典及集合

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、列表定义方式&#xff1a; 二、元组1、定义方式&#xff1a;2、元组中的物理存储地址不可修改,如果修改则会报错&#xff0c;但是元组中的列表、字典项等却可以…

2024环境,资源与绿色能源国际会议(ICERGE2024)

2024环境&#xff0c;资源与绿色能源国际会议(ICERGE2024) 会议简介 2024环境、资源与绿色能源国际会议(ICERGE2024)将于2024年在三亚举行。该会议是一个围绕环境、资源与绿色能源研究领域的国际学术交流活动。 会议主题包括但不限于环境科学、环境工程、资源利用、绿色能源开…