《JVM由浅入深学习九】 2024-01-15》JVM由简入深学习提升分(生产项目内存飙升分析)

目录

    • 开头语
    • 内存飙升问题分析与案例
      • 问题背景:我华为云的一个服务器运行我的一个项目“csdn-automatic-triplet-0.0.1-SNAPSHOT.jar”,由于只是用来测试的服务器,只有2G,所以分配给堆的内存1024M
      • 查询内存使用(top指令,再shift+M排序)
      • 解决方式
      • 内存优化建议:
    • 结语

开头语

大家好,欢迎来到本文!在Java生产项目中,内存飙升问题是一项需要高度关注的挑战。本文将深入分析Java项目内存飙升的原因,并通过实际案例进行详细分析,帮助我们更好地理解和解决内存问题。让我们一同探讨如何优化Java应用,确保其稳定高效运行!
下面是我的一个项目案例展示,让我们一起来探索内存飙高的奥秘

内存飙升问题分析与案例

问题背景:我华为云的一个服务器运行我的一个项目“csdn-automatic-triplet-0.0.1-SNAPSHOT.jar”,由于只是用来测试的服务器,只有2G,所以分配给堆的内存1024M

java -Xmx1024m -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/www/java_project/gc.log -XX:+UseG1GC -jar csdn-automatic-triplet-0.0.1-SNAPSHOT.jar

查询内存使用(top指令,再shift+M排序)

在这里插入图片描述

解决方式

  1. 查询java进程(这里分享三种方式,建议jps -l,别问为什么,不想多敲指令)
jps -l   或者  ps -ef|grep java
或者精确查找    ps -ef|grep csdn-automatic-triplet-0.0.1-SNAPSHOT.jar

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 根据上面查询的进程号(2067224)输出项目内具体内存使用情况(jmap)
jmap -histo 2067224 
jmap -histo 2067224 > jvm.txt // 输出到jvm.txt

在这里插入图片描述
在这里插入图片描述

  1. 将文件下载到本地分析(我这里用的事xshell,所以用xftp传输到本地)
    推荐一个文本工具NotePad++(好处就不多说了,做编程的很多伙伴都用这个)
    在这里插入图片描述

  2. 在文件里面Ctrl+F搜索自己项目里面的目录
    在这里插入图片描述
    结合具体情况,发现有占用内存比较多的对象,就可以去项目里找对应代码分析一下,是不是哪里有大量创建该对象,过多引用或者为什么没有被回收。

  3. 继续分析,打印堆信息(jmap)

jmap -heap 2067224 

主要看下面这些信息
在这里插入图片描述

  1. 继续打印对战信息(jmap)
    注意:改文件有点大,在生产服务器谨慎操作,最好导出到其他比较空闲的节点服务器
jmap -dump:format=b,file=heap.hprof 2067224

在这里插入图片描述
按照之前的方式下载到本地查看
这里推荐一个工具Memoryanalyzer,下载地址如下

https://eclipse.dev/mat/previousReleases.php

可以按照该博主的步骤安装

https://blog.csdn.net/zhou920786312/article/details/131857718

打开文件,默认选择Leak Suspect分析溢出
在这里插入图片描述
可以点击这些按钮查看对象使用内存情况及比例,当然,我这里没有泄露
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
泄露案例:
在这里插入图片描述

内存优化建议:

  • 合理使用缓存: 缓存是提高性能的有效手段,但需要谨慎使用,确保及时清理和更新缓存。

  • 定期分析Heap Dump: 定期生成Heap Dump文件,通过工具进行分析,及时发现和解决潜在的内存问题。

  • GC调优: 根据实际情况调整GC策略和参数,确保及时回收无用对象,降低内存压力。

结语

在Java生产项目中,内存飙升是一个复杂而常见的问题,需要我们深入分析和解决。通过本文的案例分析,我们希望能够帮助大家更好地理解和应对Java项目中的内存问题。**感谢阅读,让我们共同努力构建高效稳定的Java应用!**如果您有任何问题或想分享更多经验,请在评论区留言。

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

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

相关文章

恒温器探针样品座

恒温器探针样品座是一种用采用可移动探针完成恒温器电缆和被测样品的电学连接,避免了每次样品电引线的焊接,探针可移动,5mm--20mm大小的样品均可适用,探针可以安装6个,标准配置探针数量为4个。 恒温器探针样品座由T型…

云渲染农场渲染和自己搭建农场渲染怎么选?哪个更划算?

当我们面临繁重或紧急的渲染任务时,通常会选择云渲染的解决方案。可能很多人会问,我们是否能够自行建立一个小型的个人农场进行渲染呢?与云渲染农场相比,哪个更划算?更方便?接下来就带大家看看…

vue-echarts踩坑,本地开发可以渲染echarts图表,线上环境图表渲染不出来

main.js全局注册v-chart组件 import VueECharts from "vue-echarts"; Vue.component("v-chart", VueECharts);在页面中使用 如上图,我开始写的静态数据,在data中定义了chartOption1:{…配置项…}, 在接口数据返回之后,…

Nodejs基础3之fs模块的文件重命名和移动、文件的删除、文件夹操作、查看资源状态、fs路径

Nodejs基础二 fs模块文件重命名和移动文件的重命名文件的移动同步重命名和移动 文件的删除使用unlink进行删除unlink异步删除unlinkSync同步删除 使用rm进行删除rm异步删除rmSync同步删除 文件夹操作创建文件夹递归创建文件夹 读取文件夹删除文件夹rmdir删除文件夹删除递归文件…

电脑怎么把照片的kb缩小?三种方法帮你解决

电脑怎么把照片的kb缩小?我们在进行上传图片的时候,经常遇到图片太大,请压缩后再上传的情况,这就是我们开头所需要了解的压缩图片大小的方法,图片缩小kb可以通过三种处理方式来达到效果,我们可以直接图片压…

在线协作白板WBO本地部署启动并结合内网穿透实现远程协同办公

文章目录 推荐前言1. 部署WBO白板2. 本地访问WBO白板3. Linux 安装cpolar4. 配置WBO公网访问地址5. 公网远程访问WBO白板6. 固定WBO白板公网地址 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击…

【LeetCode: 208. 实现 Trie (前缀树)】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

一分钟带你了解--电商控价

电商行业发展至今带来了许多机遇,但同时也伴随着一些挑战。品牌电商在运营过程中,面临着诸如乱价、低价、窜货和假货等问题,这些问题不仅损害了品牌的形象和价值,也破坏了市场秩序,侵害了消费者的权益。 电商控价是解…

深度探讨 Golang 中并发发送 HTTP 请求的最佳技术

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在 Golang 领域,并发发送 HTTP 请求…

java常用API(2)

1:String 1.1 String(构造方法) 首先,我们先来学习String类,它涉及到两个案例:用户登录和聊天室。 先来看用户登录案例:需要输入用户名和密码,和已知的用户名和密码进行比较,涉及到比较的方法…

抖音小店如何选品?新手怎么选有潜力的产品?常用选品玩法分享

大家好,我是电商花花。 选品是我们店铺出单的关键,也是我们做电商行业的小伙伴非常关心的一个点。 我们想要选好商品,我们就要先搞清楚,什么样的产品才算是有潜力的产品,什么样的产品才能出单,什么样的产…

【HTML5】 canvas 绘制图形

文章目录 一、基本用法二、用法详见2.0、方法属性2.1、绘制线条2.2、绘制矩形2.3、绘制圆形2.4、绘制文本2.5、填充图像 一、基本用法 canvas 标签:可用于在网页上绘制图形(使用 JavaScript 在网页上绘制图像)画布是一个矩形区域&#xff0c…

MATLAB R2023b for Mac 中文

MATLAB R2023b 是 MathWorks 发布的最新版本的 MATLAB,适用于进行算法开发、数据可视化、数据分析以及数值计算等任务的工程师和科学家。它包含了一系列新增功能和改进,如改进了数据导入工具,增加了对数据帧和表格对象的支持,增强…

手机上最危险的3个操作,千万小心!

普通人千万不要在手机上做这3个操作,否则你的手机早晚会被黑客入侵了。 第一种,苹果越狱 越狱虽然可以绕过限制给你的苹果安装上一些特殊软件,但只要是越狱之后的苹果手机,都将留下漏洞,黑客最喜欢寻找做过越狱的手机…

nginx离线安装

安装包准备: 上传安装包到linux系统 一、进入gcc目录,执行以下命令 rpm -Uvh *.rpm --nodeps --force gcc -v查看版本 二、 进入gcc-c目录,执行命令 rpm -Uvh *.rpm --nodeps --force g -v查看版本 三、安装PCRE 解压: t…

众和策略:券商又念“紧箍咒” 绕标套现的头疼了

又有券商对两融事务念“紧箍咒”。 近来,记者从广发证券获悉,该公司已发布《关于调整融资融券负债归还规矩的告诉》,自2024年1月15日起,决议禁止融资买入证券用于归还融券负债。 相关业内人士以为,自上一年10月融资融…

华为交换机配置NQA DNS检测IP网络DNS解析速度

华为HCIA视频教程:超级实用,华为VRP系统文件详解 华为HCIA视频教程:不会传输层协议,HCIA都考不过 华为HCIA视频教程:网络工程师的基本功:网络地址转换NAT 华为HCIP视频教程:DHCP协议原理与配…

安防视频云平台/可视化监控云平台ARM版EasyCVR无法下载录像文件,如何解决?

视频集中存储/云存储/视频监控管理平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。GB28181视频监控/AI智能大数据视频分析EasyCVR平台已经广泛应用在工地…

如何使用Docker本地搭建Traefik服务并实现公网访问管理界面

文章目录 前言1. Docker 部署 Trfɪk2. 本地访问traefik测试3. Linux 安装cpolar4. 配置Traefik公网访问地址5. 公网远程访问Traefik6. 固定Traefik公网地址 前言 Trfɪk 是一个云原生的新型的 HTTP 反向代理、负载均衡软件,能轻易的部署微服务。它支持多种后端 (D…

感知器学习算法和Adaline规则

一.感知器的发展过程 感知器的发展可以追溯到20世纪50年代。它是一种简单的人工神经网络模型,最早由美国心理学家和计算机科学家弗兰克罗森布拉特(Frank Rosenblatt)于1957年提出。感知器的设计灵感来源于生物神经元的工作原理,旨…