java服务内存占用过高
文章目录
- 1、查看内存占用高的进程
- 2、查看对象个数和占用内存大小
- 3、导出内存镜像
- 4、安装独立版本的Memory Analyzer工具
- 5、使用MAT工具进行分析
- 6、注意
以下代码没有特殊说明,都是指终端命令行操作
1、查看内存占用高的进程
top
2、查看对象个数和占用内存大小
jmap -histo 624
可以看到程序中各个对象所占用内存的情况,根据占用字节数大小降序显示,这里只能看出哪些对象占用内存高,但是还不能具体定位到问题代码,需要进一步排查。
有个自定义的类Animal,个数和占用内存比较高,是重点怀疑对象。
图中一些特殊字符的含义如下:
符号 | 含义 |
---|---|
[C | 表示char[],一般与String对象相关,因为String其实就是基于char数组实现的 |
[S | 表示short[] |
[I | 表示int[] |
[B | 表示byte[] |
[Z | 表示boolean[] |
[J | 表示long[] |
[F | 表示float[] |
[D | 表示double[] |
[II | 表示int[][] |
[Ljava.lang.Object | java.lang.Object类型的数组 |
[Ljava.lang.String | java.lang.String类型的数组 |
3、导出内存镜像
jmap -dump:format=b,file=testDump.hprof 624
4、安装独立版本的Memory Analyzer工具
下载链接:
http://www.eclipse.org/mat/downloads.php
5、使用MAT工具进行分析
打开dump文件
查看对象个数和占用内存数
查看每个线程的内存使用情况
6、注意
当dump文件过大时,Memory Analyzer工具会提示解析出错
An internal error occurred during: "Parsing heap dump from '/Users/mac/cece/testDump.hprof'".
Java heap space
需要找到配置文件MemoryAnalyzer.ini,修改-Xmx的配置大小,如:
-startup
../Eclipse/plugins/org.eclipse.equinox.launcher_1.6.200.v20210416-2027.jar
--launcher.library
../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.2.200.v20210527-0259
-vmargs
-Xmx4g
-Dorg.eclipse.swt.internal.carbon.smallFonts
-XstartOnFirstThread
-Xmx配置的默认大小为1024m
java服务内存占用过高相关推荐
- 运维:你们 JAVA 服务内存占用太高,还只增不减!告警了,快来接锅
先点赞再看,养成好习惯 某天,运维老哥突然找我:"你们的某 JAVA 服务内存占用太高,告警了!GC 后也没释放,内存只增不减,是不是内存泄漏了!" 然后我赶紧看了下监控,一切正常 ...
- java程序内存占用过高问题排查
一.现象 收到线上机器报警(内存使用过高),对报警的机器节点重启后恢复正常,搁天后新的节点又开始报警: 二.排查 直接对线上机器执行dump命令,由于线上机器还有流量在持续请求,因此dump时间比较长 ...
- java内存过高_Java应用问题定位系列——内存占用过高
定位Java程序内存使用过高或者内存泄漏的问题跟CPU也类似,一般可以分为以下3个步骤: 定位进程 定位线程 定位具体方法(代码部分) 一.定位进程 通过top -c(然后按Shift+M按内存排序) ...
- Java微服务内存占用分析
一.Java 进程中有哪些组件会占用内存? 通过 Native Memory Tracking 可以观察到有以下 JVM 组件.在命令行加上-XX:NativeMemoryTracking=summa ...
- 一个神奇的bug:OOM?优雅终止线程?系统内存占用较高?
摘要:该项目是DAYU平台的数据开发(DLF),数据开发中一个重要的功能就是ETL(数据清洗).ETL由源端到目的端,中间的业务逻辑一般由用户自己编写的SQL模板实现,velocity是其中涉及的一种 ...
- Spring cloud开发内存占用过高解决方法
https://blog.csdn.net/wanhuiguizong/article/details/79289986 版权声明:本文为博主原创文章,转载请声明文章来源和原文链接. https:// ...
- win10内存占用过高解决方案
用win10,感觉电脑太卡,内存占用过高,写程序啥的,动不动就飙升到八九十,泪目 搜寻后,整理出来解决方案,供大家参考: 1. 关闭服务启动项 运行msconfig--服务--隐藏Microsoft服 ...
- Linux java进程CPU占用过高解决方案
总目录 一.前言: 二.模拟java程序CPU过高 1 修改代码为死循环 2 部署在linux上 访问该接口 根据top命令查看CPU参数 3 通过ps命令查看这个程序的线程信息,tid代码线程ID, ...
- 如何占用计算机内存,电脑内存占用太高怎么办 教你电脑内存不够用解决方法...
现在很多白领买电脑,都会优先考虑电脑的续航和便捷,因为他们买电脑主要也就办办公,看看电影,又不玩大型游戏,所以高性能对他们来说也没什么必要. 笔记本电脑 但现在市面上续航久,便携性比较高的Intel电 ...
最新文章
- 绩效C,看不到希望...
- Andriod anim translate中的属性介绍
- jQuery获取时间,一位数则补零
- ElasticSearch第二天
- android 电话 快捷键,Android studio开发常用快捷键详解
- Python项目实践:基本统计值计算
- 结合ENVI与ArcMAP的NC数据处理(均值、最大最小值等)心得记录
- Oracle 11g R1/R2 真正应用集群(RAC)基础
- 键盘皇者 RealForce 104Pro独家评测
- HFSS - 双频微带天线设计与仿真
- MyEclipse 注册码
- oracle加字段卡住,oracle添加字段引起的问题
- 萝卜小姐-Handler之系列sendMessage学习
- Source Insight 4.0安装破解及简单使用
- Java P5713 【深基3.例5】洛谷团队系统 洛谷入门题
- LeetCode0704-二分查找
- vue---隐藏登录页面导航栏,登录成功跳转页面出现导航栏
- 你们公司有职业通路图吗
- Qt uchar *转 Hex的QString方法代码
- 最令我。。。。的一首诗
热门文章
- java 打印 日历 详细 注解_java 打印日历
- Java学习之旅-04
- 研究生项目狗自救指南
- matlab搭建多径模型,基于MATLAB的无线多径信道建模与仿真分析.docx
- 正点原子mysql_正点原子战舰开发板硬件原理图与PCB
- 可汗学院计算机课程都有哪些,要录制可汗学院教学视频你需要哪些硬件和软件?...
- dbk-5/Empf/CEE/O/M30技术文章dbk-5/Sender/M30/k1
- mysql中vlookup函数_Vlookup + MySql 数据高效迁移
- Unity简单2D游戏开发
- CTP程序化交易入门系列之二:API基本架构及初始化