如何排查JVM内存占用过高
1、当程序没有内存溢出OOM(out of memory)时
注意:jmap需要依赖jdk的devel包
查询class内存占用命令:
# jmap -histo pid 展示class类的堆信息
先用top命令查询程序的pid
# jmap -histo 878193
可以看到该项目内存的占用情况,就可以分析出是哪里的问题了
注意:这里的[B 和 [C的表示的是数组,[[B 是byte的二维数组
[Z = boolean
[B = byte
[S = short
[I = int
[J = long
[F = float
[D = double
[C = char
[L = any non-primitives(Object)
jmap其他命令:
# jmap -heap pid 查询pid的整体堆信息
# jmap -histo:live pid>a.log 查询heap中所有生存的对象堆信息,并保存到文件中注意: 这个命令执行,JVM会先触发gc,然后再统计信息。
# jmap -dump:live,format=b,file=a.log pid 内存信息dump到a.log文件中注意: jmap -dump 会将整个heap导出,如果heap很大的话,会比较耗时,且会暂停应用,慎用
2、当程序已经访问不了时,需要导出dump日志是要工具分析
# java -XX:+PrintFlagsFinal -version
通过这个命令看jdk是否开启开启堆内存溢出时,自动导出dump文件
HeapDumpOnOutOfMemoryError 堆内存溢出时自动导出开关,默认false
HeapDumpPath 堆内存溢出时dump文件导出路径
开启方法:
1、配置方法
在JAVA_OPTIONS变量中增加
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目录}。
例如:export JAVA_OPTS="-Xms2048M -Xmx2048M -Xmn682M -XX:MaxPermSize=96M"
2、参数说明
(1)-XX:+HeapDumpOnOutOfMemoryError参数表示当JVM发生OOM时,自动生成DUMP文件。
(2)-XX:HeapDumpPath={目录} 参数表示生成DUMP文件的路径,
也可以指定文件名称,例如:-XX:HeapDumpPath=${目录}/java_heapdump.hprof。
如果不指定文件名,默认为:java_pid_date_time_heapDump.hprof。
查看dump文件工具
MAT、visualVM等都可以的
如何排查JVM内存占用过高相关推荐
- 【jvm内存占用过高分析】
[jvm内存占用过高分析] 1.首先进入服务容器内 //获取服务容器名称 kubectl get pods |grep <服务名称>// 进入容器内部 kubectl -it exec & ...
- java cms cpu占用率_cpu使用率过高和jvm old占用过高排查过程
今天断断续续的收到管理平台的异常报警,cpu占用过高和jvm old占用过高,这个时候赶紧去排查原因,下面记录了我的排查过程,可能里面还有不正确的地方,欢迎各位大佬指正,也欢迎大家关于类似的案例一起交 ...
- 一次jvm导致线上内存占用过高问题定位
背景:8G物理内存,8核CPU,jvm使用的G1垃圾回收器. 问题:线上内存占用告警,内存占用超过85%,且现象一直持续. 分析 看一下jvm启动参数配置: -Xms6144m -Xmx6144m - ...
- Linux系统内存占用过高排查方法
以下以Ubuntu系统为例,内存占用过高可能是因为某个进程或程序占用了过多的内存,您可以按照以下步骤进行排查: 以上是一些基本的排查步骤,它们可以帮助您确定内存占用过高的原因,并采取相应的措施解决问题 ...
- UE 手游在 iOS 平台运行时内存占用太高?试试这样着手优化
性能优化,对游戏开发来说是一个需要不断钻研的课题,性能越好,游戏才会运行的更加顺畅,玩家的体验感才会更好.腾讯游戏学院专家.游戏客户端开发 Leonn,将和大家分享 UE 手游在 iOS 平台上的内存 ...
- 一个神奇的bug:OOM?优雅终止线程?系统内存占用较高?
摘要:该项目是DAYU平台的数据开发(DLF),数据开发中一个重要的功能就是ETL(数据清洗).ETL由源端到目的端,中间的业务逻辑一般由用户自己编写的SQL模板实现,velocity是其中涉及的一种 ...
- Spring cloud开发内存占用过高解决方法
https://blog.csdn.net/wanhuiguizong/article/details/79289986 版权声明:本文为博主原创文章,转载请声明文章来源和原文链接. https:// ...
- 无盘服务器内存问题,无盘服务器内存占用过高
无盘服务器内存占用过高 内容精选 换一换 Windows操作系统云服务器蓝屏,如图1所示.使用了来源不明的第三方软件.CPU占用过高导致.因为误操作或者病毒引起的系统文件.注册表损坏.操作系统在蓝屏的 ...
- node启动之后内存占用过高解决方案
小编一开始也是一脸懵,这是为啥呢,一个空的node项目启动之后占用内存竟然有400多M 查看项目占用cpu以及内存详情命令 docker stats | grep node 经过小编坚持不懈的找度年终 ...
最新文章
- struts2学习笔记--线程安全问题小结
- python图片-利用python进行识别相似图片(一)
- Linux时间子系统之三:时间的维护者:timekeeper
- 【编译原理】构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 8.)(笔记)一元运算符正负(+,-)
- 说下网鼎杯第四场的双色块
- 地址栏地址 获取_直播源获取工具,支持斗鱼、虎牙、B站、企鹅电竞、YY、抖音、西瓜直播!...
- 视频光端机音频出现噪音是为何?
- Asp.net MVC3.0 基于不同的角色显示不同的菜单
- Debian 系统安装 Nagios 服务器监控端
- 时尚高端电商网页设计素材
- centos安装php
- SpringBoot根据包名进行区分使用多数据源
- 数据结构视频教程哪个好
- SQL语法整理(五)-视图
- 论文查重 降重复度?如何进行毕业论文查重--总结贴
- break 通过自定义标签跳到指定位置
- ffmpeg 查看bayer rg8 \ bg8 像素格式图片方法
- iPhone 14 电池耗电怎么样?iPhone 14和13比对那个续航好?
- Asp.Net 汉字转(拼音)
- 二级c语言 真题,全国计算机二级c语言历年真题完整版.doc
热门文章
- 在阿里云或腾讯云配置微信小程序
- 新装修的房子怎样知道含不含有甲醛?斐讯悟空M1告诉你
- 谈谈技术人的英语学习
- stm32中断源有哪些_STM32常见问题汇总
- 方文室随记12柳永13秦朝
- html分页自动加载,AutoPagerize插件,网页自动翻页插件,自动加载分页网站
- c fread 快读 详解_万事开头难,手把手教你搭建Appium自动化测试环境,实践案例详解...
- 魔力宝贝登录一直服务器无响应,魔力宝贝归来怎么提升战力?
- 正点原子嵌入式linux视频教程,正点原子嵌入式开发完整全套视频教程
- 生信基础(三)——统计分析工具R语言