真实互联网线上系统JVM内存溢出排查流程(文末彩蛋)

本文描述了一次因JVM内存溢出导致的线上服务瘫痪事件,详细介绍了通过jmap导出dump文件,使用MemoryAnalyzer工具进行分析的过程。分析结果显示可能由大对象或流量激增引起,解决方案包括调整JVM参数或增加服务器。作者还分享了相关工具的下载链接和配置方法。
摘要由CSDN通过智能技术生成

起因:
近期在工作中发生因jvm内存溢出导致线上应用进程崩溃,导致服务瞬间瘫痪。期间发现集群中每台应用服务器JVM内存使用率高达96%左右,存在瞬间内存打满,导致服务瘫痪情况。
根据经验分析,大概率是由于JVM中存在长期无法回收的(大)对象(此问题属代码本身问题)或瞬间流量激增导致垃圾收集器来不及回收(可调整JVM参数或横向增加服务器)导致。

排查过程:
1.通过命令(jmap -dump:format=b,file=/opt/jvmdump/20220810.dump pid)导出jvm dump文件备用。
2.打开MemoryAnalyzer工具进行分析。此工具需要jdk11或以上版本支持,如果没有jdk11或以上版本,需要安装jdk11或以上版本,并修改MemoryAnalyzer配置
修改MemoryAnalyzer工具的MemoryAnalyzer.ini文件,新增-vm D:/java/jdk-11.0.15.1/bin/javaw.exe,来指定jdk;如果dump文件过大,需要调整初始内存(如-Xmx4g)。记得修改jdk环境变量
MemoryAnalyzer工具下载:
https://ftp.yz.yamagata-u.ac.jp/pub/eclipse//mat/1.13.0/rcp/MemoryAnalyzer-1.13.0.20220615-win32.win32.x86_64.zip
3.导入准备好的dump文件到MemoryAnalyzer进行分析。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值