工作纪实42-内存泄漏(线上问题大乱斗)

还没找到原因,监控里面发现实例的内存使用率每天增加5%,这两天排查一下,mark一下;

下午看了几个小时,泄漏大概率是乌龙事件了!

为何我有这样的疑惑:
在这里插入图片描述
上线完后面几天内存一直在增加,没有减少,直到今天下午2点,突然下降了一波;
我使用了下面两个命令:

jmap -histo:live 1738 #查看实时的堆内存对象分布信息

最大的对象也就40mb,我看了下机器的配置2核/4g,理论上讲不会造成泄漏或者溢出才对,日志也没有error这种输出;
在这里插入图片描述
又看了下gc的回收情况:

jstat -gcutil 1738 1000

也比较正常,因为主要是一个方法,会有一些对象的创建,执行完就没用了其实,所以年轻代的回收很频繁,也没问题;(没有直接dump下来分析,是因为这台机器是专门处理一个mq消息的,单台qps大概在400左右,做的事情比较简单,但是量比较大,一天8个g的日志文件,dump文件的话会更大,因此就先不考虑用mat区分析堆内存文件),代码我也检查了,几乎不存在泄漏的可能
在这里插入图片描述
分析:
根据最上面的内存监控折线图,可以看到30%左右就回收了一部分内存,因此怀疑是内存使用率太低,前期过的对象一直存放在堆中,达到30%的阀值后触发了回收;后续需要再持续的跟踪观察下才能判断是不是这样;

疑惑的点就是,项目中的jvm启动参数,cms垃圾回收期并没有设置任何内存使用阀值,不知道为何是30%,希望网友们帮帮我!

其他参考:
-Xms 为jvm启动时分配的内存,比如-Xms200m,表示分配200M
-Xmx 为jvm运行过程中分配的最大内存,比如-Xms500m,表示jvm进程最多只能够占用500M内存
-Xss 为jvm启动的每个线程分配的内存大小

jstat命令列含义

时间戳记 -自目标JVM启动时间以来的时间(以秒为单位)。
S0:幸存区0(Survivor 0)的使用率,以百分比表示。
S1:幸存区1(Survivor 1)的使用率,以百分比表示。
E:伊甸园区(Eden)的使用率,以百分比表示。
O:老年代(Old)的使用率,以百分比表示。
M:元数据区(Metaspace)的使用率,以百分比表示。
CCS:压缩类空间(Compressed Class Space)的使用率,以百分比表示。
YGC:年轻代垃圾回收的次数。
YGCT:年轻代垃圾回收的总时间(单位:秒)。
FGC:Full GC(全局垃圾回收)的次数。
FGCT:Full GC的总时间(单位:秒)。
GCT:垃圾回收的总时间(包括年轻代和Full GC的时间)(单位:秒)。

jvm参数参考:https://blog.csdn.net/weixin_44642403/article/details/107449395

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

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

相关文章

【C程序设计】C循环

有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。 编程语言提供了更为复杂执行路径的多种控制结构。 循环语句允许我们多次执行一个…

CMake入门教程【核心篇】查找包(find_package)

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「本文的内容」:CMake入门教程 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 1.使用方法1.1基本用…

Allegro看不到PCB元件的丝印和装配层

#创作灵感# PCB板到处Gerber文件加工回来,板子上没有元件边框丝印,但是有元件编号。因为只是样板,影响不大,就没有当回事。直到发出去贴片,发送了钢网层和装配层,反馈说不知道元器件的极性。这就纳闷了&…

大创项目推荐 深度学习人脸表情识别算法 - opencv python 机器视觉

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习人脸表情识别系…

Qt菜单工具栏和状态栏

QMenuBar 接口介绍 QAction 定义:QAction 是一个独立于具体界面元素的抽象动作表示。它封装了一个用户界面动作(比如点击命令),通常与一个菜单项、工具栏按钮或快捷键相关联。用途:你可以将 QAction 视为一个可执行的…

springboot整合springbatch批处理

springboot整合springbatch实现批处理 简介项目搭建步骤 简介 项目搭建 参考博客【场景实战】Spring Boot Spring Batch 实现批处理任务,保姆级教程 步骤 1.建表 建表sql CREATE TABLE student (id int NOT NULL AUTO_INCREMENT,name varchar(100) NOT NULL C…

手把手将ReactJS项目部署到Ubuntu

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情 1.构建项目 npm run build 生成build目录: 2.上传项目 将build目录上传到Ubuntu。 可以使用Xftp工具。 3.启动项目 npm install -g serve serve -s …

.mallox勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复

引言: 随着技术的不断发展,网络空间也不可避免地面临着各种威胁,其中之一就是勒索病毒,而.mallox是近期引起关注的一种恶意软件。本文将介绍.mallox勒索病毒,以及如何有效地恢复被其加密的数据文件,并提供…

Java后端开发——Spring实验

文章目录 Java后端开发——Spring实验一、Spring入门1.创建项目,Spring依赖包。2.创建JavaBean:HelloSpring3.编写applicationContext.xml配置文件4.测试:启动Spring,获取Hello示例。 二、Spring基于XML装配实验1.创建JavaBean类&…

Stata各版本安装指南

Stata下载链接 https://pan.baidu.com/s/1ECc2mPsfNOUUwOQC9hCcYg?pwd0531 1.鼠标右击【Stata18(64bit)】压缩包(win11及以上系统需先点击“显示更多选项”)【解压到 Stata18(64bit)】。 2.打开解压后的文件夹,鼠标右击【Setup】选择【以管…

视频如何去掉logo水印?这个几个方法记得收藏好!

在当今这个数字媒体的时代,视频已经渗透到我们生活的每一个角落,宛如一道亮丽的风景线,丰富着我们的生活色彩。然而,有些时候,这些视频上的logo水印,却像一片乌云,遮挡住了那原本明媚的阳光&…

印象笔记03 衍生软件使用

印象笔记03 衍生软件使用 Verse 以下内容来源于官方介绍 VERSE是一款面向未来的智能化生产力工具,由印象笔记团队诚意推出。 你可以用VERSE: 管理数字内容,让信息有序高效运转;搭建知识体系,构建你的强大知识库&am…