当前位置: 首页 > news >正文

专项提升-分析dump堆文件 服务器内存占用排查

一、堆文件

1、先把服务器上运行的JAVA程序的文件dump下来

其实直接在Linux上使用Linux命令分析也可以,但一般在企业中作为一名开发是没有权限去在服务器上操作的,基本都是运维在负责,但可以让运维协助完成,需要注意两点,一是注意时间节点,挑一个正常时间(上班-下班)去做,这样内存占用情况也常规合理,分析也会更有意义

如果内存经常打满,那就找个内存占用最高的时候去dump

wget -c 'https://demo123.obs.cn-east-3.myhuaweicloud.com:443/ops/temp_upload/spm.zip?AWSAccessKeyId=QXTISFCH9UM05IOXHB3Y&Expires=1749030220&Signature=WHBqNaNN6ERb2%2Fp86d9xK%2BruFQE%3D' -O spm.zip

上述命令后你会得到一份压缩文件,解压缩后得到java.dump文件

2、内存分析工具-jprofile

https://download.csdn.net/download/m0_54925305/90982370

接下来分析dump内存的工具有不少,比如JProfiler,jvisualvm。推荐使用JProfiler

3、小技巧

一个小技巧,如果安装的时候勾选了关联文件后缀名选项,那直接将后缀名改为 .hprof 双击就可以打开了

二、内存分析

重点关注"Current Object Set" 和"Thread Dump",即:

1.Current Object Set: 确定相关对象,找到对应的线程.

2.在Thread Dump中查找对应的线程,确定方法调用栈,找到具体的业务操作.

因内存溢出,更多的关注占内存大小,可以点击"size"排序,对内存占用最多的对象进行分析

附:
LaunchedURLClassLoader导致的内存溢出处理办法_launchedurlclassloader内存溢出-CSDN博客

http://www.xdnf.cn/news/1027405.html

相关文章:

  • 在死胡同里 做加法是什么意思?
  • 坚持做一件事情和好奇做一件事,本质区别和思考
  • 开发者视角:一键拉起功能解析
  • XAttention 计算步骤详解及示例
  • 【Qt】Qt控件
  • 【组件】纯html+css实现图片预览+切换图片的功能
  • 189. 轮转数组
  • Linux --基础IO
  • 大模型的开发应用(十):对话风格微调项目(上):数据工程与模型选型
  • 安卓开发常用框架与库详解
  • 发现 Kotlin MultiPlatform 的一点小变化
  • 技术干货 | 注塑件电磁网格划分指南(HyperMesh+SimLab)
  • BIO网络通信基础(TCP协议)
  • Dock最新方法
  • 第二十三章 23.Wireless LAN(CCNA)
  • Linux 文件系统核心概念
  • Atlassian AI(Rovo)在不同场景中的实际应用:ITSM、HR服务、需求管理、配置管理
  • Git Switch 与 Git Restore 详解
  • yum查看历史操作
  • 高并发场景下接口安全实现方案:全方位构建防护体系
  • 重复的囚徒困境博弈中应该如何决策?--阿克塞尔罗德竞赛(Axelrod‘s Tournament)实验
  • Spring注解的深层含义
  • 人工智能 倒底是 智能 还是 智障?
  • OmoFun动漫官网,动漫共和国最新入口|网页版
  • java集合篇(七) ---- ArrayList 类
  • BeckHoff_FB --> F_SEQ_X3_TrigJob 函数
  • TCP客户端进程分割输入输出
  • 【Qt】工具介绍和信号与槽机制
  • SpringCloud2020-alibaba
  • DDD各种架构详细介绍