java突发内存和CPU同时100%排查解决

news2025/1/16 19:49:19

问题说明

springBoot 微服务项目,生产环境突然CPU和内存使用率都100%,导致接口请求超时。

初步排查

  1. 接口慢首先排除数据库和慢sql的影响,本次问题是所有接口同事慢,不是单个接口,所以不是数据库问题。
  2. 大面积接口慢很可能是CPU负载高,生产环境都有服务器监控,查看监控。
    在这里插入图片描述
    在这里插入图片描述
  3. 如果CPU很高,内存正常,很可能是那一段程序消耗cpu。首先使用阿里的arthas工具,thread -n命令查看cpu高的堆栈,然后再解决。
    我们遇到的是内存也很高,很可能是垃圾回收占用CPU,先用命令行快速排查一遍。
    jstat查看堆内存使用情况:jstat -gcutil 1 1000
    1000ms输出一次,线程pid=1的内存使用情况
    在这里插入图片描述
    jmap查看存活对象:jmap -histo:live 1
    统计pid=1的程序,存活对象使用情况,发现两百多万个业务对象。
    在这里插入图片描述
    总结:以上排查都是现有监控和简单命令行,进入服务器就可以快速得到结论。由于业务对象有几十个地方都用到了,不确定那个方法引起的,所以需要进一步深度排查,dump内存进行分析

使用MAT工具分析dump内存

  1. 保留事故现场,dump内存
    jmap -dump:format=b,file=/test/jmap_dump_all.hprof
    我们服务器内存比较大,dump文件7G,先zip压缩再下载到本地进行分析。zip压缩后大小1G。

  2. 安装和调试mat工具

  • 我用的mac,下载mac最新版本 : https://www.eclipse.org/mat/previousReleases.php
    在这里插入图片描述
  • 由于国内主流是java8,mat工具打开会报错,最新版本需要java11启动。
    在这里插入图片描述
    下载解压jdk11(不用配置环境变量) 进入Oracle 官网:https://www.oracle.com/java/technologies/downloads/#java11
  • 配置jdk
    step1. 在应用列表,找到mat应用,然后右键单击后,选择“显示包内容”
    step2. 进入Contents目录,找到Info.plist文件
    step3. 打开Info.plist文件
    step4. 编辑-vm配置,将解压的jdk11目录配置上
    在这里插入图片描述
    在这里插入图片描述
  • 默认只能打开1024M的文件,7G文档打开会报错OOM
    在这里插入图片描述
    在这里插入图片描述
  1. 使用mat工具
  • 用mat工具打开dump文件
  • 点击dominator_tree
  • 查看内存占用高的详情,根据堆栈找到入口接口
    在这里插入图片描述
    在这里插入图片描述

最后

mat工具找到占用内存的入口堆栈和具体对象,最后就是根据业务去优化了

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

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

相关文章

【BP靶场-服务端】SQL注入-17个实验

目录 一、SQL意义 1、目的: 2、示例: 二、检索隐藏数据 实验1:隐藏商品 三、颠覆应用程序逻辑 实验2:登陆逻辑 四、从其他数据库表中检索数据 实验3:判断列 实验4:判断字段对应位置 实验5&#…

门控循环单元(GRU)

门控循环神经网络可以更好地捕获时间步距离很长的序列上的依赖关系。 重置门有助于捕获序列中的短期依赖关系。 更新门有助于捕获序列中的长期依赖关系。 重置门打开时,门控循环单元包含基本循环神经网络;更新门打开时,门控循环单元可以跳…

2023年广东数据分析师CPDA认证招生简章(理论+实战)

CPDA数据分析师认证是中国大数据领域有一定权威度的中高端人才认证,它不仅是中国较早大数据专业技术人才认证、更是中国大数据时代先行者,具有广泛的社会认知度和权威性。 无论是地方政府引进人才、公务员报考、各大企业选聘人才,还是招投标加…

Github上排名前五的开源网络监控工具,附详细的图文说明和项目下载地址

Github上排名前五的开源网络监控工具,附详细的图文说明和项目下载地址。 维护网站正常运行是系统管理员最基本的任务之一,所以对系统进行监视,并保持网络的最佳运行状态至关重要。 在现代的网络中,有许多不同的方法来监视&#…

LeetCode刷题之406 根据身高重建队列(贪心算法)

题目描述 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返回输入数…

元宇宙数字产品制作厂商广州华锐互动如何?

近两年,元宇宙引发全球的高度关注,很多玩家也都开始参与进来。作为虚拟世界的重要组成部分,元宇宙也从一个概念逐渐演变成了一种全新的商业模式以及行业发展趋势。 元宇宙具有极致沉浸和交互的体验,可以提升生活、工业、社会、科…

云原生之使用Docker部署OneNav个人书签管理器

云原生之使用Docker部署OneNav个人书签管理器一、OneNav介绍1.OneNav简介2.OneNav特点二、检查本地docker环境1.检查docker版本2.检查docker状态三、下载onenav镜像四、部署OneNav应用1.创建数据目录2.创建OneNav容器3.查看OneNav容器状态五、访问OneNav首页六、访问OneNav后台…

难受的这两天,你们怎么样?

12月23号周五,下班回来小云说中午下楼买菜碰到小区认识的一个妈妈,两个人在楼下聊了一会,晚上那个妈妈检测出阳性,周五晚上睡觉前,小云没任何不适,周末看朋友圈和小区已经很多很多人中招,我那时…

大数据系列——什么是hdfs?hdfs用来干什么的?

目录 一、什么是HDFS 二、hdfs用来干什么的 三、hdfs适用场景 四、hdfs不适合的场景 五、hdfs 架构 基本概念 六、HDFS基础命令 七、hdfs业务中应用 一、什么是HDFS HDFS全称是Hadoop Distributed File System是一种分布式文件系统(HDFS使用多台计算机存储文件&#xff…

易基因|深度综述:癌症中RNA修饰机制的遗传和表观遗传失调(m6A+m1A+m5C+ψ)

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 2022年11月12日,《Trends Genet》杂志发表了题为“Genetic and epigenetic defects of the RNA modification machinery in cancer”的综述文章,讨论了m6A、m5C、…

CSS滤镜 filter 网站灰色设置

-webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: grayscale(100%); filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale1);例如: CSS滤镜 filter 详情链接 blu…

【K3s】第6篇 详解yaml文件,pod端口供外部访问

目录 1、yaml文件详解 2、pod 容器对外透露端口号 1、yaml文件详解 apiVersion: v1 #创建一个新的命名空间 kind: Namespace metadata:name: test --- apiVersion: apps/v1 #资源版本,可使用 kubectl api-versions命令查看有哪些,只有指定具体的资源…

嵌入式:ARM常用开发编译软件介绍

文章目录编译器介绍1、ADS1.22、ARM RealView Developer Suite (RVDS)3、IAR EWARM4、KEIL ARM-MDKARM5、WIN ARM-GCC ARM编译器介绍 1、ADS1.2 ADS(ARM Developer Suite),是在1993年由Metrowerks公司开发是ARM处理器下最主要的开发工具。 他…

结合今年的考试难度浅析浙大MBA/MPA/MEM三项目的分数线趋势…

最近一些天,不少考生都在关注今年的分数线问题,按照往年惯例,这个问题的答案要等到3月10日前后才会出来,包括国家线和浙大自划线两个复试的标尺。但从历史数据和经验方面倒也可以提前针对这个问题做一些趋势分析,特别是…

client-go源码学习(一):client-go源码结构、Client客户端对象

本文基于Kubernetes v1.22.4版本进行源码学习,对应的client-go版本为v0.22.4 1、client-go源码结构 client-go的代码库已经集成到Kubernetes源码中了,源码结构示例如下: $ tree vendor/k8s.io/client-go -L 1 vendor/k8s.io/client-go ├─…

《业务安全大讲堂》——2022全年大回顾!

数字化的深入普及,让企业的业务愈加开放互联。企业的核心业务、关键数据、用户信息、基础设施、运营过程等均处于边界模糊且日益开放的环境中,在电商、支付、信贷、账户、交互、交易等各种形态的业务场景中,存在着形式多样的欺诈行为。而业务…

企业数字化转型迫切,团队协同工具何以成为“杀手锏”?

不久前,2022世界互联网大会乌镇峰会开幕,360创始人周鸿祎以“构建SaaS生态,助力数字化共同富裕”为主题发表分论坛演讲,并宣布360集团正式上线SaaS商店,为中小微企业和实体产业提供一站式数字化转型服务,填…

elasticsearch之metric聚合

文章目录1、背景2、准备数据2.1 准备mapping2.2 准备数据3、metric聚合3.1 max 平均值3.1.1 dsl3.1.2 java代码3.2 min最小值3.2.1 dsl3.2.2 java3.3 min最小值3.3.1 dsl3.3.2 java3.4 min最小值3.4.1 dsl3.4.2 java3.5 count(*)3.5.1 dsl3.5.2 java3.6 count(distinct)3.6.1 d…

一款非常萌的桌面工具 --- Bongo Cat Mver 附使用教程

最近看B站的时候发现了一个很好玩的桌面工具,Bongo Cat Mver 通过多方查找资源,终于找到了,并且已经下载使用 O(∩_∩)O 不知道这只小猫是不是特别好看呢?放在你的桌面上 Bongo Cat Mver简介 Bongo Cat Mver 是一款画风非常萌的…

[论文解析] NeRF-Art: Text-Driven Neural Radiance Fields Stylization

文章目录OverviewWhat problem is addressed in the paper?Is it a new problem? If so, why does it matter? If not, why does it still matter?What is the key to the solution?What is the main contribution?What can we learn from ablation studies?P…