首页 > 其他分享 >Arthas问题排除案例

Arthas问题排除案例

时间:2023-09-22 21:24:38浏览次数:39  
标签:文件 OOM 排除 案例 对象 内存 Arthas new 死循环

一、现象

(死循环)线上CPU100%

(内存无法回收)内存OOM

二、原因:

(死循环)不断的进行加减操作、不断的死循环打印日志、不断的new对象

(内存溢出)不断的大量new对象,但不被回收,也可能不是死循环,但new出的对象无法被回收,导致内存溢出

三、解决过程

1、启动arthas

2、查询cpu占用最高线程

thread

3、发现id为58的线程CPU占用最高,查询其调用链

thread 58

3.1死循环

在这边我们可以发现在SimulateHashMap.getNode方法中卡住了,这时候我们基本就可以确定是因为死循环的问题

3.2 OOM

还有一种可能,不断大量的new对象,导致内存OOM

第一步:检查Full GC的情况

jstat -gc pid 间隔时间 显示次数

jps -l

jstat -gc 97598 3000 30

3.2.1 死循环

 

3.2.2 内存泄露

 

这种如果通过thread来分析,可能不会卡在某个方法上,这时我们需要通过堆文件来分析,通过heapdump来生成堆转储文件,用于分析内存问题。

heapdump /path/to/dump.hprof

将hprof文件放到jdk自带的分析工具jvisualvm.exe中,看到堆中有大量之前 JdbcTemplate 对象,同时大量的对象又放在HaspMap中,导致栈结束后,对象无法被回收,导致OOM。

4. 修改原代码

直接修改源java文件(或jad反编译后)再mc编译回.class文件

再通过redefine将.class文件进行热部署

最后再观察cpu问题


 

标签:文件,OOM,排除,案例,对象,内存,Arthas,new,死循环
From: https://www.cnblogs.com/yifanSJ/p/17723333.html

相关文章

  • 卡尔曼滤波发散原因、解决方案以及实测案例分析
    一、背景  2023年9月22日,今天本来开开心心搞测试,奈何雷达有了小情绪,之前能够稳定跟踪但今天不管如何测试对快速运动的行人都无法形成有效的跟踪,本来以为是SDK的问题(近两天测试换了一个新的SDK),换回去之后它也不行了。跟踪跟不上了,看着点云数据还可以,他就是跟不上。算法难搞哦,......
  • # yyds干货盘点 # ChatGPT 实用小案例分享——使用Python重命名附件和统计发票合计金
    大家好,我是皮皮。一、前言前几天在【志军】的星球看到了一个有意思的ChatGPT分享,正好喝Python相关的,一起来看看吧。ChatGPT实用小案例分享。如果你在高德或者滴滴上申请过开票,应该知道它们会给我们发一封邮件,发票和行程单都会放在附件中。由于高德是聚合平台,背后有很多网约车平台,......
  • 【精选视频免费看】Midjourney数字人换脸直播案例分享
    很多学员反馈,课程动辄几十、几百课时的学习时长,难以持续学习;经常课程买了=学了。为此,51CTO学堂在【视频课程】产品基础上,新增【短视频】版块,3分钟聚焦技术精华+个性化推荐内容,实现碎片化技术学习,在这里“随便逛逛,总有新收获”!新功能赶紧一睹为快,一起看看今天都有哪些值得我们IT人......
  • Arthas
    一、简介Arthas是阿里巴巴开源的一款Java线上诊断工具,利用Arthas可以对指定的JVM进程进行CPU、内存、线程、死锁监控处理,同时也可以动态的获取JVM中的源代码结构。得益于Arthas强大且丰富的功能,让Arthas能做的事情超乎想象。当你遇到以下类似问题而束手无策时,Arthas都可以......
  • Vue执行和开发流程、登录小案例、混入、插件、elementui
    一、Vue执行流程1、vue的执行流程#1为什么浏览器中访问某个地址,会显示某个页面组件 -根组件:App.vue必须是<template><divid="app"><router-view></router-view></div> </template> -1配置路由 router--......
  • 工控机通过Profinet转Modbus RTU网关与报警控制仪通讯案例
    本文将以工控机通过Profinet转ModbusRTU网关(XD-MDPN100)与报警控制仪通讯的实际案例为例,介绍Profinet转ModbusRTU网关(XD-MDPN100)在工业通信的应用。在某个生产车间的报警系统中,报警控制仪是起到监测和控制作用的关键设备。由于生产车间内设备众多,且距离较远,无法直接通过ModbusR......
  • PLC通过Modbus转Profinet网关与合康变频器Modbus通讯案例
    PLC通过Modbus转Profinet网关(XD-MDPN100)与合康变频器Modbus通讯,实现了两个设备之间的数据交互。Profinet是一种基于以太网的实时工控网络协议,而Modbus是一种常用的工业通信协议。通过Modbus转Profinet网关(XD-MDPN100),PLC实现了对合康变频器的监控和操作。操作人员可以通过Profinet......
  • PLC通过Modbus转Profinet网关连接变频器控制电机案例
    在本案例中,通过使用Modbus转Profinet网关(XD-MDPN100),PLC可以通过Profinet协议与变频器进行通信和控制。这样,PLC可以实现对电机的转速调节、启停控制等功能。同时,通过Modbus转Profinet(XD-MDPN100)网关协议转换的应用,可以实现对电机运行状态的实时监测和故障诊断,及时发现并解决电机故......
  • 【实战案例】技术转项目经理容易踩的坑,我都踩了
    “带团队容易,带好团队难。”这是身边一位项目经理近期在团队管理方面的深刻感悟。目前,他手上的一个项目被迫暂停了,项目团队也散了。下面给大家简要分享下这个项目案例。【案例分享】小李负责的是一个二次开发的项目,所涉及的需求较多,但小李之前是由技术转为项目经理的,所以他刚接到......
  • Odoo看板视图实践案例
    看板视图是一个很常见的可视化解决方案了,例如:联系人卡片,任务卡片,还有二次元朋友们经常逛的哔站。我个人也是非常喜欢看板视图,比起那些呆板的tree视图,看板视图给人的感觉的就是简洁直观又好看。本人也是初学Odoo一个月,其中深意只知其一,但也想跟各位大佬分享交流,于是斗胆以拙见一......