java程序内存占用过高问题排查
一、现象
收到线上机器报警(内存使用过高),对报警的机器节点重启后恢复正常,搁天后新的节点又开始报警;
二、排查
直接对线上机器执行dump命令,由于线上机器还有流量在持续请求,因此dump时间比较长,生成的dump文件有16G+;因此我们先摘除了问题节点的流量,执行dump命令:
ps -ef|grep java 获取服务的pid
jmap -dump:live,format=b,file=/opt/mydump.hprof 3915 (只dump存活的日志)
生成的dump文件13G左右,压缩后还有3G,把mydump.hprof文件下载到本地
三、分析
用jprofiler工具进行分析,下面是分析步骤:
1.打开要分析的快照文件
2.点击最大对象
选择占用内存最大的对象,点击使用选定对象
选择传出引用,outgoing references 点击确认
3.点击reference引用查看
点击reference会显示刚才选定的最大对象的引用
展开查看详细信息,可以看到是由于线程池使用了无界队列(默认int的最大值)导致,队列中的任务有223589个,内存总占用7900MB
点击传入引用Incoming references,展开详细信息,展示更多,可以看到具体引用的类,InterflowProxy就是代码中用到线程池的类
至此,可以定位到具体占用内存过高的代码。
java程序内存占用过高问题排查相关推荐
- 线上java程序CPU占用过高问题排查
简要 工作中负责的有一个项目是使用iReport+JasperReport实现的一个打印系统.最近这个线上程序经常无响应,重启后恢复正常,但是时不时还是会出现类似的问题. 最后发现是JasperRep ...
- 运维:你们 JAVA 服务内存占用太高,还只增不减!告警了,快来接锅
先点赞再看,养成好习惯 某天,运维老哥突然找我:"你们的某 JAVA 服务内存占用太高,告警了!GC 后也没释放,内存只增不减,是不是内存泄漏了!" 然后我赶紧看了下监控,一切正常 ...
- Linux排查java程序CPU占用过高问题
项目部署到服务器上之后,偶尔出现CPU被java程序占满的情况. 现在排查问题原因 top 首先查看系统资源占用信息,使用命令 top 发现正在运行的JAVA项目CPU占用率如果很高,那问题肯定出在这 ...
- java服务内存占用过高
文章目录 1.查看内存占用高的进程 2.查看对象个数和占用内存大小 3.导出内存镜像 4.安装独立版本的Memory Analyzer工具 5.使用MAT工具进行分析 6.注意 以下代码没有特殊说明, ...
- Java应用CPU占用过高问题排查
文章目录 问题描述 问题分析 如果你的 Java 应用把 CPU 100% 打满,该怎么办呢? 下面就结合实际情况来说明,对于 Java 应用,CPU 消耗过高的时,该如何处理? CPU 消耗过高分析 ...
- 记一次Linux系统内存占用较高得排查
背景:收到报警,系统的内存使用率触发阈值(部分图是后补的) 1,登陆系统,使用命令查看内存分配 top 按M free -m atop 看下内存分配(cat /proc/meminfo 也可以看到一些 ...
- java内存过高_Java应用问题定位系列——内存占用过高
定位Java程序内存使用过高或者内存泄漏的问题跟CPU也类似,一般可以分为以下3个步骤: 定位进程 定位线程 定位具体方法(代码部分) 一.定位进程 通过top -c(然后按Shift+M按内存排序) ...
- node启动之后内存占用过高解决方案
小编一开始也是一脸懵,这是为啥呢,一个空的node项目启动之后占用内存竟然有400多M 查看项目占用cpu以及内存详情命令 docker stats | grep node 经过小编坚持不懈的找度年终 ...
- Linux系统内存占用过高排查方法
以下以Ubuntu系统为例,内存占用过高可能是因为某个进程或程序占用了过多的内存,您可以按照以下步骤进行排查: 以上是一些基本的排查步骤,它们可以帮助您确定内存占用过高的原因,并采取相应的措施解决问题 ...
最新文章
- 行为识别Action Detection概述及资源合集(持续更新...)
- flutter 安装遇坑记录
- BigDecimal的用法
- MacOS上的包管理工具
- 文本怎么换成html,编辑html格式文本可改成txt格式(可以替换或更换某文本)新手...
- 经典面试题(30):以下代码将输出的结果是什么?
- 【UML】类图Class diagram(转)
- 修改notebook的默认路径_更改jupyter notebook默认存储路径
- impala查询语句_impala 下的SQL操作
- php简单使用shmop函数创建共享内存减少服务器负载
- selenium2.0处理case实例(二)
- eclipse git 上传工程 提交项目到 github
- React-leaflet在ant-design pro中的基本使用
- MapStruct 代码生成器
- (补)2021.1.22
- SU插件情报局 | Selection Toys 过滤选择(附插件安装包)
- Python学习笔记——python基础之python中for......else......的使用
- 昆仑固件涉密专用计算机,存储处理国家秘密的计算机信息系统按照涉密程序实行...
- iOS透明导航栏的平滑过渡(进阶版)
- wordcloud库应用-《唐诗三百首》词云图详解