MemoryAnalyzer分析线上OOM异常

news2024/9/20 18:49:30

本文档记录工作中发生的一次OOM异常分析

最近线上环境频繁出现OOM异常,导致应用服务器宕机,之前有观察过最近的程序更新,猜测定位到最近的一个接口上,之前发现问题都是打印堆栈信息排查,但是这次发现堆栈信息并不能有效定位到问题点,因此在本次出现OOM的时候直接做dump日志进行问题定位。

首先采用打印堆栈信息

1、通过top命令查找出对应对PID 进程 

2、通过top -Hp pid 查找对应进程的线程  

 3、将第二步的线程PID转换为 16 进制

printf '%x\n' PID  

printf '%x\n'  26011

4、保存线程栈信息

jstack 13731 > thread_stack.log 13731 为第一步的PID

这里有时候可以找到对应的关键信息,但是有时候就会出现如下情况,根本无法定位

"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007fbae801e800 nid=0x66a2 runnable 

"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007fbae8020800 nid=0x66a3 runnable 

"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x00007fbae8022000 nid=0x66a4 runnable 

"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x00007fbae8024000 nid=0x66a5 runnable 

"GC task thread#4 (ParallelGC)" os_prio=0 tid=0x00007fbae8026000 nid=0x66a6 runnable 

"GC task thread#5 (ParallelGC)" os_prio=0 tid=0x00007fbae8027800 nid=0x66a7 runnable 

"GC task thread#6 (ParallelGC)" os_prio=0 tid=0x00007fbae8029800 nid=0x66a8 runnable 

"GC task thread#7 (ParallelGC)" os_prio=0 tid=0x00007fbae802b800 nid=0x66a9 runnable 

 综上情况,无法定位到问题点,则需要进一步分析

查看GC情况

1、jstat -gcutil <进程ID> 2000 10 会发现新生代和老生代都是100%,而且FULL GC频率很高

2、转dump文件

jmap -dump:live,format=b,file=dump.hprof 28920(进程号)

3、打开MemoryAnalyzer,选择Leak Suspects

 查看detail详情

在Thread Stack定位到具体哪一行代码问题,以及导致问题的原因,本次原因是一个查询条件失效,导致查出的数据在30W,导致内存溢出。 

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

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

相关文章

lc刷题总结(二叉树第一次)

前中后序的递归遍历 lc144 94 145 class Solution { public:void travel(TreeNode * cur,vector<int>& vec){if(curnullptr){return;}travel(cur->left, vec);travel(cur->right, vec);vec.push_back(cur->val);}vector<int> postorderTraversal(Tre…

视频点播小程序毕业设计,视频点播系统设计与实现,微信小程序毕业设计论文怎么写毕设源码开题报告需求分析怎么做

项目背景和意义 目的&#xff1a;本课题主要目标是设计并能够实现一个基于微信小程序视频点播系统&#xff0c;前台用户使用小程序&#xff0c;后台管理使用基java&#xff08;springboot框架&#xff09;msyql8数据库的B/S架构&#xff1b;通过后台添加课程信息、视频信息等&a…

Spring Cloud(十五):微服务自动化部署 DevOps CI/CD、Maven打包、ELK日志采集

DevOps CI/CD Gitlab(免费版和收费版)Jenkins基于GitLabJenkins快速实现CI\CD 后端项目打包以及部署方式 spring-boot-maven-pluginmaven-dependency-pluginmaven 官网插件maven-jar-plugin上传jar包到maven私服 ELK 日志采集 使用FileBeatLogstashES实现分布式日志收集使用 ma…

使用握手信号实现跨时钟域数据传输(verilog)

大家好&#xff0c;最近汇总了2021年oppo哲库招聘手撕代码题目&#xff0c;本文章一共含有以下几个题目&#xff1a; 一&#xff0c;使用握手信号实现跨时钟域数据传输&#xff08;verilog&#xff09; 二&#xff0c;自动售卖机&#xff08;verilog&#xff09; 三&#xf…

Jenkins执行shell脚本报错:bash: kubectl: command not found

问题描述 搭建好Jenkins之后&#xff0c;通过shell脚本构建k8s应用&#xff0c;但是脚本报错&#xff1a; bash: kubectl: command not found网上找了很多解决办法都不正确&#xff0c;并不适用于我的问题。 先说明&#xff0c;我的Jenkins和k8s各自独立的&#xff0c;不在同…

如何实现自有App上的小程序第三方微信授权登陆?

对于微信小程序来说&#xff0c;有 OpenID 或 UnionID 作为唯一标识&#xff0c;微信授权登陆小程序账号是很容易实现的&#xff0c;但对于其他应用上的小程序来说&#xff08;如支付宝、百度等&#xff09;&#xff0c;打通该登陆方式是比较麻烦的。 之前在FinClip开发了小程…

OPC Expert 最新版 Crack-2022-12-05

使用 OPC Expert 进行故障排除只是开始&#xff01;像专业人士一样解决您的 OPC 和 DCOM 连接问题&#xff01; 快速修复 OPC 和 DCOM 错误&#xff1a;使用 OPC Expert&#xff0c;您无需任何经验即可解决和修复 OPC 连接问题。OPC Expert 为您完成繁重的工作&#xff0c;以快…

excel根据颜色赋值 Excel填充颜色单元格替换成数字 excel把所有红色变成1

法/步骤 案例中&#xff0c;周一到周五产生倒班的&#xff0c;是用橙色标识的。周六周日的倒班是用蓝色标识的。然后&#xff0c;我们要将橙色的单元格替换成数字30&#xff0c;蓝色的单元格替换成数字50&#xff0c;分别代表30元和50元的倒班费。 使用快捷键CtrlH进入替换对…

如何把小程序游戏运行到自有App中?(IOS篇)

千呼万唤始出来&#xff01;FinClip 终于支持小游戏了。 我们团队算是 FinClip 的老用户了&#xff0c;年初就向官方提出了希望 FinClip 支持微信小游戏的建议。随着前段时间 “羊了个羊” 微信小游戏的爆火&#xff0c;官方也把小游戏支持提上了日程&#xff0c;近期官方开启…

[附源码]JAVA毕业设计时间管理系统(系统+LW)

[附源码]JAVA毕业设计时间管理系统&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&…

通过Node + SSE 做了一个构建日志推送

1.注册页是什么 当我们使用一个从未使用过的网站时,想要注册账号,点击注册账号时看到的网页就是注册页> 注册页例子如下: 我们看到以下的注册页中,有两大类信息: 第一大类是用户信息类,> 包括用户名,密码和email,他们都有自己的 取值规则 ,例如用户名显示不得小于3个字符…

哪款TWS耳机音质比较好?音质最好的TWS耳机推荐

现如今&#xff0c;喜欢戴蓝牙耳机听歌的人越来越多&#xff0c;甚至一些高端的蓝牙耳机在音质上可以媲美有线耳机。最近看到很多人问&#xff0c;哪款TWS耳机音质比较好&#xff1f;下面&#xff0c;我来给大家推荐几款音质最好的TWS耳机&#xff0c;可以当个参考。 一、南卡…

jsp社区医院信息系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp社区医院信息系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql&#xff0c;使用…

将苹果手机数据导入苹果手机苹果?如何传输苹果手机数据

当用户需要将数据传输到苹果手机&#xff0c;应该怎么操作呢&#xff1f;所以&#xff0c;在本文中&#xff0c;易我小编将讲解将苹果手机数据导入苹果手机苹果&#xff1f; 方法1、利用iOS的快速迁移功能 如果是使用版本iOS 12.4及更高版本系统&#xff0c;新手机还没进行任何…

博世XC事业部李胤:自动驾驶降温不意外,但这条路肯定会走下去

“&#xff08;今年自动驾驶&#xff09;有些降温&#xff0c;这是正常的。所有的新技术不可能一路发展直上云天&#xff0c;总有坎坷。”2022年11月22日下午&#xff0c;博世智能驾驶与控制事业部&#xff08;以下简称“博世XC事业部”&#xff09;中国区总裁李胤在媒体群访中…

脑电信号分类问题的数据预处理方法

脑电波介绍 脑电波&#xff08;Electroencephalogram, EEG&#xff09;是应用电生理指标来记录大脑活动的方法。大脑在活动时&#xff0c;神经元同步发生突触后电位反应在了头皮表面&#xff0c;研究者将电机放置在被试者的头皮上检测脑电波信号。电机位置大概如下&#xff1a;…

[python] 基于wordcloud库绘制词云图

词云Wordcloud是文本数据的一种可视化表示方式。它通过设置不同的字体大小或颜色来表现每个术语的重要性。词云在社交媒体中被广泛使用&#xff0c;因为它能够让读者快速感知最突出的术语。然而&#xff0c;词云的输出结果没有统一的标准&#xff0c;也缺乏逻辑性。对于词频相差…

Log,SqlServerProfile, EFProfile三种监视EntityFramework中的sql流

大家在学习entityframework的时候,都知道那linq写的叫一个爽,再也不用区分不同RDMS的sql版本差异了,但是呢,高效率带来了差灵活性,我们 无法控制sql的生成策略,所以必须不要让自己缺乏好的工具去监控sql,本篇给大家介绍的三种监控手段Log和SqlServer profile,ef profi…

QA | SWCF2022 笔记:卫星传输链路中的关键技术分享

2022年度SWCF卫星通信与仿真测试研讨会正在进行中。精彩演讲&#xff1a;卫星传输链路中的关键技术分享&#xff0c;收到一些粉丝的技术问题&#xff0c;我们汇总了热点问题并请讲师详细解答。 主题&#xff1a;卫星传输链路中的关键技术分享 认识卫星通信与传输链路过程 1. …

来看看火爆全网的ChatGPT机器人写的武侠小说,我直呼内行!

作为一个程序员&#xff0c;不免对最近爆火的ChatGPT聊天机器人非常好奇&#xff0c;晚上睡不着觉&#xff0c;经过一番折腾&#xff0c;总算和ChatGPT聊上了。然后突发奇想&#xff0c;让它写武侠小说如何&#xff0c;会让小说家失业吗&#xff1f;结果机器人的反应让我直呼内…