【记一次线上事故的排查思路】- CPU飙升问题排查

问题描述

由于项目排期较紧,临时从其他组调来三个开发资源帮我一起做项目,难免上线的时候大家的需求一块上线。
问题来了,上线三天后,线上CPU总是莫名奇妙的突然飙升,飙升后CPU并未降下来,而是一直处在高点。
在这里插入图片描述

问题复现

由于是线上导致的问题,CPU超限后,会自动重启项目,未能保留现场,这样就给排查问题带来了困难。于是,在UAT环境进行压测,看问题出现在哪里。
果不其然,在压测一段时间后,复现了CPU飙升的问题。

查找根因

  1. 在出现问题的服务中通过top 命令查看CPU占用100%的进程号(PID)
  2. top -H -n 1 -p PID 然后通过命令查找对应进程下线程的状态
  3. 通过 jstack -l PID > ./jstack.log 命令输出进程的线程文件
  4. 查看刚输出的jstack.log文件,查看线程详情
  5. 将PID,转成16进制
  6. 查看jstack.log,搜索转成16进制的字符,可以 /+字符串 例如:/4a6 直接向下搜索所在位置,可以看到此线程正在运行中,而且代码行数也标注清楚。

当时没保留每一步的操作截图( ̄▽ ̄)"

第6步有标注出现问题的具体某一行代码,然后进行排查,发现是一段做动态计算的代码,遂进行修改,加上计算时间显示,大于某个时间没计算出来则终止计算。

复测

代码修改完发布到UAT环境再次进行压测,这次不在出现CPU突然飙升的情况,搞定!!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解密POM:提升自动化脚本稳定性和开发效率的正确姿势!

Page Objects是selenium的一种测试设计模式,主要将每个页面看作是一个class。class的内容主要包括属性和方法,属性不难理解,就是这个页面中的元素对象,比如输入用户名的输入框,输入登陆密码的输入框、登陆按钮、这个页…

《WebKit 技术内幕》学习之七(3): 渲染基础

3 渲染方式 3.1 绘图上下文(GraphicsContext) 上面介绍了WebKit的内部表示结构,RenderObject对象知道如何绘制自己,但是,问题是RenderObject对象用什么来绘制内容呢?在WebKit中,绘图操作被定…

【Leetcode】2765. 最长交替子数组

文章目录 题目思路代码结果 题目 2765. 最长交替子数组 题目:给你一个下标从 0 开始的整数数组 nums 。如果 nums 中长度为 m 的子数组 s 满足以下条件,我们称它是一个 交替子数组 : m 大于 1 。 s1 s0 1 。 下标从 0 开始的子数组 s 与…

Vue中$watch()方法和watch属性的区别

vue中$watch()和watch属性都是监听值的变化的,是同一个作用,但是有两个不同写法。 用法一: //注意:这种方法是监听不到对象的变化的。 this.$watch((newVal,oldVal)>{ }) 用法二: watch:{xxx:(newVal,oldVal)>…

SpringCloud Aliba-Seata【上】-从入门到学废【7】

目录 🧂.Seata是什么 🌭2.Seata术语表 🥓3.处理过程 🧈4.下载 🍿5.修改相关配置 🥞6.启动seata 1.Seata是什么 Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能…

硅像素传感器文献调研(八)

1977 平面单场限环器件的理论与击穿电压 摘要 使用一个或多个浮置场限制环减少了平面器件中结曲率对击穿电压的不利影响。虽然这已经知道了一段时间,但还没有一种方法可以准确地预测使用场环可以实现的改善量。本文提出了一种计算机算法,它使得有可能进…

残差连接是什么意思

残差连接是深度神经网络中一种用于缓解梯度消失问题的技术。它的核心思想是通过将网络的输入直接传递到网络的输出,从而构建了一条直达路径,使得梯度更容易通过整个网络传播。这有助于在训练深层网络时避免梯度消失或梯度爆炸的问题。 在残差连接中&…

Linux 一键部署grafana

grafana 前言 Grafana 是一款开源的数据可视化和监控仪表盘工具。它提供了丰富的数据查询、可视化和报警功能,可用于实时监控、数据分析和故障排除等领域。 通过 Grafana,您可以连接到各种不同的数据源,包括时序数据库(如 Prometheus、InfluxDB)和关系型数据库(如 MySQ…

题记(26)--Sharing(链表公共后缀)

目录 一、题目内容 二、输入描述 三、输出描述 四、输入输出示例 五、完整C语言代码 一、题目内容 To store English words, one method is to use linked lists and store a word letter by letter. To save some space, we may let the words share the same sublist if…

Mybatis----缓存

MyBatis是一个流行的Java持久化框架,它提供了一个灵活的缓存机制来提高查询性能。 MyBatis的缓存机制主要分为一级缓存和二级缓存。 一级缓存是指在同一个SqlSession中,查询结果会被缓存起来,当再次执行同样的查询时,直接从缓存中…

Python学习04—基本图形绘制

通过一个案例来初步认识Python的图形绘制 案例:绘制Python蟒蛇 #PythonDraw.py import turtle turtle.setup(650,350,200,200) turtle.penup() turtle.fd(-250) turtle.pendown() turtle.pensize(25) turtle.pencolor("purple") turtle.seth(-40) for i…

基于springboot+vue的“衣依”服装销售平台系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 研究背景…

使用云服务器被攻击,该如何防止ddos攻击

目前我们运行各项网络业务都离不开服务器,现在使用比较多的都是云服务器了。大家都知道,目前市场上用的云服务器大多数都是没有带什么防护了,那么用云服务器的时候,如果遭受到了ddos攻击,该怎么办,云服务器…

司铭宇老师:家具导购销售培训:家具导购员销售技巧和话术

家具导购销售培训:家具导购员销售技巧和话术 在现代家居市场中,家具不仅仅是日常生活的必需品,更是体现居住者个性和生活品味的重要元素。作为家具导购员,掌握专业的销售技巧和巧妙的话术对于吸引顾客、提高成交率至关重要。本文将…

[每日一题] 01.23 - 画矩形

画矩形 height,width,c,d input().split() height,width,d int(height),int(width),int(d) lis [c * width if d else c * (width - 2) c for i in range(height) ]lis: ##### # # # # ##### 或 # # # # # # # #if not d:print(c * width)for i in lis[1:-1…

【Linux编辑器-vim使用】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、vim的基本概念 二、vim的基本操作 分屏操作: 三、vim正常(命令)模式命令集 四、vim末行(底行)模…

PHP+vue+Mysql家庭理财管理系统演5x6nf

本文着重阐述了收支管理系统的分析、设计与实现,首先介绍开发系统和环境配置、数据库的设计,对系统的功能需求作出分析,根据需求对系统进行设计,明确各个部分的规范,来完成系统的设计。最后在对设计的系统进行一系列的…

项目工程下载与XML配置文件下载:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(十)

XPCIE1032H功能简介 XPCIE1032H是一款基于PCI Express的EtherCAT总线运动控制卡,可选6-64轴运动控制,支持多路高速数字输入输出,可轻松实现多轴同步控制和高速数据传输。 XPCIE1032H集成了强大的运动控制功能,结合MotionRT7运动…

Mysql学习笔记系列(一)

本次mysql系列不会讲解具体的查询语句,而是放在mysql的一些性能优化和一些特性上,是学习笔记,供大家参考补充。 慢查询 MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日志记录,用来记录在MySQL中响应…

Java下载FTP服务器上的资源,附带FTP工具类

通过xftp可以看到目标服务器上面的资源如下&#xff1a; 第一步&#xff1a;导入ftp依赖&#xff1a; <dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.7</version> <!-- 使用最新…