JAVA服务实例内存高问题排查及解决

本文详细记录了一次生产环境中JAVA服务内存高问题的排查过程,包括通过代码审查、性能监控和内存分析工具确定问题,并提供了解决方案。通过对热点方法优化、数据库查询性能提升和内存镜像分析,虽然未直接解决问题,但为后续的内存管理提供了宝贵经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生产服务内存高问题

问题描述#

•1、“计算中心” 服务堆内存分配4g,在生产环境运行一段时间后,实际占用内存4.8G,业务运行正常,未出现OOM。(本文以此服务进行排查)

•2、生产环境的老项目,均出现运行一段时间后,内存被占满但未OOM的情况。部分实例因内存占用过高导致被系统kill,一般需要通过增加机器、实例进行解决(资源浪费)。

造成的影响#

•1、服务器物理内存15g,部署了三个服务。如实际占用内存都超过4.8g,导致服务器物理内存不够用,出现告警而将占用内存最大进程kill掉,影响生产服务的可用性,后果十分严重。

•2、如服务申请的内存超出了JVM能提供的内存大小(内存泄漏),将会导致java堆内存溢出,从而发生full gc,导致服务响应大幅度变慢,卡机等状态。

•3、在公司大促等场景的情况下,内存占用很高的服务会带来很大风险,通常需提前联系运维同事对“计算中心”进行重启,增加了开发及运维同事维护的工作量。

排查过程

代码#

(1)根据cat监控,获取“计算中心”中的热点方法,进行REVIEW,修正了部分可能会导致内存泄露的方法。并进行了观察。

(2)通过VisualVM监控,定位到部分耗时较久的操作DB热点方法,通过增加索引等方式,把查询性能控制在毫秒级。

(3)dump“计算中心”的内存镜像,通过MAT等工具观察各个对象在堆空间中所占用的内存大小、类实例数量、对象引用关系。

结论:通过以上三点,未解决和定位“计算中心”内存高问题。由此可以认为,
https://www.jianshu.com/p/1bfcfc3ba6d7
https://www.jianshu.com/p/8f8c6d7cb1a5
https://www.jianshu.com/p/ec2d17670291
https://www.jianshu.com/p/af36f1de39c4
https://www.jianshu.com/p/87034f73ea64
https://www.jianshu.com/p/be9ba5eae2ba
https://www.jianshu.com/p/7ff0d4ab9bbf
https://www.jianshu.com/p/d3865ff7f7b7
https://www.jianshu.com/p/f8222dd46311
https://www.jianshu.com/p/255bf975b1c2
https://www.jianshu.com/p/53ddfd1442dc
https://www.jianshu.com/p/f35097b03557
https://www.jianshu.com/p/ca898365c061
https://www.jianshu.com/p/f54a596d5200
https://www.jianshu.com/p/6f812126a186
https://www.jianshu.com/p/a029a5ff61f6
https://www.jianshu.com/p/1c16b9bd3254
https://www.jianshu.com/p/790006eaefdc
https://www.jianshu.com/p/f260097e86f2
https://www.jianshu.com/p/28888cac00d8
https://www.jianshu.com/p/e172679b86ce
https://www.jianshu.com/p/be28b328d15c
https://www.jianshu.com/p/bf07aecee059
https://www.jianshu.com/p/b2dc74d4be58
https://www.jianshu.com/p/16846c53ec6c
https://www.jianshu.com/p/288f200411eb
https://www.jianshu.com/p/ba79c990f03d
https://www.jianshu.com/p/a04155587c97
https://www.jianshu.com/p/62bf91bf9782
https://www.jianshu.com/p/2ef0753c9951
https://www.jianshu.com/p/978a4c5242fe
https://www.jianshu.com/p/158e967a88ad
https://www.jianshu.com/p/d52f596dd98f
https://www.jianshu.com/p/097d6a515d93
https://www.jianshu.com/p/439a2139ea92
https://www.jianshu.com/p/192299667ae4
https://www.jianshu.com/p/e9ea08f70959
https://www.jianshu.com/p/e5df3edb0ab3
https://www.jianshu.com/p/55e883309f6a
https://www.jianshu.com/p/eb703d87f65e
https://www.jianshu.com/p/ff54b37e8bef
https://www.jianshu.com/p/03f4d78f300a
https://www.jianshu.com/p/dc9f03e335c9
https://www.jianshu.com/p/d8b4df995d43
https://

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值